diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-08-30 17:08:12 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-08-30 17:08:12 +0300 |
commit | 42a9e7b1eeced8503f909b0276ee251a2bfe75c6 (patch) | |
tree | 103859bbe12e8781466ee84b3ea464af5a5e470f /src/net/ea | |
parent | 4e343cd6e657f2b747b67fb688af53087199b097 (diff) | |
download | plus-42a9e7b1eeced8503f909b0276ee251a2bfe75c6.tar.gz plus-42a9e7b1eeced8503f909b0276ee251a2bfe75c6.tar.bz2 plus-42a9e7b1eeced8503f909b0276ee251a2bfe75c6.tar.xz plus-42a9e7b1eeced8503f909b0276ee251a2bfe75c6.zip |
Move receive code from skillhandler into separate file.
Diffstat (limited to 'src/net/ea')
-rw-r--r-- | src/net/ea/skillhandler.cpp | 23 | ||||
-rw-r--r-- | src/net/ea/skillhandler.h | 37 | ||||
-rw-r--r-- | src/net/ea/skillrecv.cpp | 59 | ||||
-rw-r--r-- | src/net/ea/skillrecv.h | 72 |
4 files changed, 131 insertions, 60 deletions
diff --git a/src/net/ea/skillhandler.cpp b/src/net/ea/skillhandler.cpp index f05d1f18a..c5ce14cdf 100644 --- a/src/net/ea/skillhandler.cpp +++ b/src/net/ea/skillhandler.cpp @@ -37,27 +37,4 @@ SkillHandler::SkillHandler() { } -void SkillHandler::processPlayerSkillUp(Net::MessageIn &msg) -{ - const int skillId = msg.readInt16("skill id"); - const int level = msg.readInt16("skill level"); - const int sp = msg.readInt16("sp"); - const int range = msg.readInt16("range"); - const Modifiable up = fromBool(msg.readUInt8("up flag"), Modifiable); - - if (skillDialog && PlayerInfo::getSkillLevel(skillId) != level) - skillDialog->playUpdateEffect(skillId); - PlayerInfo::setSkillLevel(skillId, level); - if (skillDialog) - { - if (!skillDialog->updateSkill(skillId, range, - up, SkillType::Unknown, sp)) - { - skillDialog->addSkill(SkillOwner::Player, - skillId, "", level, - range, up, SkillType::Unknown, sp); - } - } -} - } // namespace Ea diff --git a/src/net/ea/skillhandler.h b/src/net/ea/skillhandler.h index cbb7f35cd..298036087 100644 --- a/src/net/ea/skillhandler.h +++ b/src/net/ea/skillhandler.h @@ -27,40 +27,6 @@ #include "localconsts.h" -namespace Net -{ - class MessageIn; -} - -/** job dependend identifiers (?) */ -static const unsigned int SKILL_BASIC = 0x0001; -static const unsigned int SKILL_WARP = 0x001b; -static const unsigned int SKILL_STEAL = 0x0032; -static const unsigned int SKILL_ENVENOM = 0x0034; - -/** basic skills identifiers */ -static const unsigned int BSKILL_TRADE = 0x0000; -static const unsigned int BSKILL_EMOTE = 0x0001; -static const unsigned int BSKILL_SIT = 0x0002; -static const unsigned int BSKILL_CREATECHAT = 0x0003; -static const unsigned int BSKILL_JOINPARTY = 0x0004; -static const unsigned int BSKILL_SHOUT = 0x0005; - -/** reasons why action failed */ -static const unsigned int RFAIL_SKILLDEP = 0x00; -static const unsigned int RFAIL_INSUFSP = 0x01; -static const unsigned int RFAIL_INSUFHP = 0x02; -static const unsigned int RFAIL_NOMEMO = 0x03; -static const unsigned int RFAIL_SKILLDELAY = 0x04; -static const unsigned int RFAIL_ZENY = 0x05; -static const unsigned int RFAIL_WEAPON = 0x06; -static const unsigned int RFAIL_REDGEM = 0x07; -static const unsigned int RFAIL_BLUEGEM = 0x08; -static const unsigned int RFAIL_OVERWEIGHT = 0x09; - -/** should always be zero if failed */ -static const unsigned int SKILL_FAILED = 0x00; - namespace Ea { @@ -70,9 +36,6 @@ class SkillHandler notfinal : public Net::SkillHandler SkillHandler(); A_DELETE_COPY(SkillHandler) - - protected: - static void processPlayerSkillUp(Net::MessageIn &msg); }; } // namespace Ea diff --git a/src/net/ea/skillrecv.cpp b/src/net/ea/skillrecv.cpp new file mode 100644 index 000000000..18e3e63e7 --- /dev/null +++ b/src/net/ea/skillrecv.cpp @@ -0,0 +1,59 @@ +/* + * 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/skillrecv.h" + +#include "being/playerinfo.h" + +#include "gui/windows/skilldialog.h" + +#include "net/messagein.h" + +#include "debug.h" + +namespace Ea +{ + +void SkillRecv::processPlayerSkillUp(Net::MessageIn &msg) +{ + const int skillId = msg.readInt16("skill id"); + const int level = msg.readInt16("skill level"); + const int sp = msg.readInt16("sp"); + const int range = msg.readInt16("range"); + const Modifiable up = fromBool(msg.readUInt8("up flag"), Modifiable); + + if (skillDialog && PlayerInfo::getSkillLevel(skillId) != level) + skillDialog->playUpdateEffect(skillId); + PlayerInfo::setSkillLevel(skillId, level); + if (skillDialog) + { + if (!skillDialog->updateSkill(skillId, range, + up, SkillType::Unknown, sp)) + { + skillDialog->addSkill(SkillOwner::Player, + skillId, "", level, + range, up, SkillType::Unknown, sp); + } + } +} + +} // namespace Ea diff --git a/src/net/ea/skillrecv.h b/src/net/ea/skillrecv.h new file mode 100644 index 000000000..a980d9739 --- /dev/null +++ b/src/net/ea/skillrecv.h @@ -0,0 +1,72 @@ +/* + * 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_SKILLRECV_H +#define NET_EA_SKILLRECV_H + +#include "net/skillhandler.h" + +#include "localconsts.h" + +namespace Net +{ + class MessageIn; +} + +/** job dependend identifiers (?) */ +static const unsigned int SKILL_BASIC = 0x0001; +static const unsigned int SKILL_WARP = 0x001b; +static const unsigned int SKILL_STEAL = 0x0032; +static const unsigned int SKILL_ENVENOM = 0x0034; + +/** basic skills identifiers */ +static const unsigned int BSKILL_TRADE = 0x0000; +static const unsigned int BSKILL_EMOTE = 0x0001; +static const unsigned int BSKILL_SIT = 0x0002; +static const unsigned int BSKILL_CREATECHAT = 0x0003; +static const unsigned int BSKILL_JOINPARTY = 0x0004; +static const unsigned int BSKILL_SHOUT = 0x0005; + +/** reasons why action failed */ +static const unsigned int RFAIL_SKILLDEP = 0x00; +static const unsigned int RFAIL_INSUFSP = 0x01; +static const unsigned int RFAIL_INSUFHP = 0x02; +static const unsigned int RFAIL_NOMEMO = 0x03; +static const unsigned int RFAIL_SKILLDELAY = 0x04; +static const unsigned int RFAIL_ZENY = 0x05; +static const unsigned int RFAIL_WEAPON = 0x06; +static const unsigned int RFAIL_REDGEM = 0x07; +static const unsigned int RFAIL_BLUEGEM = 0x08; +static const unsigned int RFAIL_OVERWEIGHT = 0x09; + +/** should always be zero if failed */ +static const unsigned int SKILL_FAILED = 0x00; + +namespace Ea +{ + namespace SkillRecv + { + void processPlayerSkillUp(Net::MessageIn &msg); + } // namespace SkillRecv +} // namespace Ea + +#endif // NET_EA_SKILLRECV_H |