ManaPlus
skillrecv.cpp
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  * Copyright (C) 2019-2021 Andrei Karas
7  *
8  * This file is part of The ManaPlus Client.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 #include "net/ea/skillrecv.h"
25 
26 #include "being/playerinfo.h"
27 
29 
30 #include "net/messagein.h"
31 
32 #include "debug.h"
33 
34 namespace Ea
35 {
36 
38 {
39  const int skillId = msg.readInt16("skill id");
40  const int level = msg.readInt16("skill level");
41  const int sp = msg.readInt16("sp");
42  const int range = msg.readInt16("range");
43  const Modifiable up = fromBool(msg.readUInt8("up flag"), Modifiable);
44 
45  if (skillDialog != nullptr && PlayerInfo::getSkillLevel(skillId) != level)
46  skillDialog->playUpdateEffect(skillId);
47  PlayerInfo::setSkillLevel(skillId, level);
48  if (skillDialog != nullptr)
49  {
50  if (!skillDialog->updateSkill(skillId, range,
51  up, SkillType::Unknown, sp))
52  {
54  skillId, "", level,
55  range, up, SkillType::Unknown, sp);
56  }
57  }
58 }
59 
60 } // namespace Ea
#define fromBool(val, name)
Definition: booldefines.h:49
bool updateSkill(const int id, const int range, const Modifiable modifiable, const SkillType::SkillType type, const int sp)
void playUpdateEffect(const int id) const
void addSkill(const SkillOwner::Type owner, const int id, const std::string &name, const int level, const int range, const Modifiable modifiable, const SkillType::SkillType type, const int sp)
bool Modifiable
Definition: modifiable.h:30
bool msg(InputEvent &event)
Definition: chat.cpp:39
void processPlayerSkillUp(Net::MessageIn &msg)
Definition: skillrecv.cpp:37
int getSkillLevel(const int id)
Definition: playerinfo.cpp:120
void setSkillLevel(const int id, const int value)
Definition: playerinfo.cpp:128
SkillDialog * skillDialog
Definition: skilldialog.cpp:66