From 2cdf1b18d5593dfecacfc7b2e113c404dc64d1f4 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 5 Sep 2014 12:20:58 +0300 Subject: Use skill type struct in skill info. --- src/gui/widgets/skillinfo.cpp | 2 +- src/gui/widgets/skillinfo.h | 4 +++- src/gui/windows/skilldialog.cpp | 4 ++-- src/gui/windows/skilldialog.h | 6 ++++-- src/net/ea/skillhandler.cpp | 7 +++++-- src/net/eathena/skillhandler.cpp | 3 ++- src/net/tmwa/skillhandler.cpp | 3 ++- src/resources/skilltype.h | 1 + 8 files changed, 20 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/gui/widgets/skillinfo.cpp b/src/gui/widgets/skillinfo.cpp index 93b9bcf60..bd889865d 100644 --- a/src/gui/widgets/skillinfo.cpp +++ b/src/gui/widgets/skillinfo.cpp @@ -48,7 +48,7 @@ SkillInfo::SkillInfo() : skillLevelWidth(0), id(0), range(0), - type(0), + type(SkillType::Unknown), modifiable(false), visible(false) { diff --git a/src/gui/widgets/skillinfo.h b/src/gui/widgets/skillinfo.h index f096da9ac..10d6191df 100644 --- a/src/gui/widgets/skillinfo.h +++ b/src/gui/widgets/skillinfo.h @@ -25,6 +25,8 @@ #include "gui/color.h" +#include "resources/skilltype.h" + #include #include #include @@ -53,7 +55,7 @@ struct SkillInfo final int skillLevelWidth; unsigned int id; int range; - int type; + SkillType::SkillType type; bool modifiable; bool visible; diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp index 73a023005..7be86ec1b 100644 --- a/src/gui/windows/skilldialog.cpp +++ b/src/gui/windows/skilldialog.cpp @@ -345,7 +345,7 @@ void SkillDialog::loadXmlFile(const std::string &fileName) bool SkillDialog::updateSkill(const int id, const int range, const bool modifiable, - const int type) + const SkillType::SkillType type) { const SkillMap::const_iterator it = mSkills.find(id); @@ -369,7 +369,7 @@ void SkillDialog::addSkill(const int id, const int level, const int range, const bool modifiable, - const int type) + const SkillType::SkillType type) { if (mDefaultModel) { diff --git a/src/gui/windows/skilldialog.h b/src/gui/windows/skilldialog.h index 39082c1e7..8e2c325a0 100644 --- a/src/gui/windows/skilldialog.h +++ b/src/gui/windows/skilldialog.h @@ -27,6 +27,8 @@ #include "listeners/actionlistener.h" +#include "resources/skilltype.h" + class Button; class Label; class SkillModel; @@ -76,14 +78,14 @@ class SkillDialog final : public Window, bool updateSkill(const int id, const int range, const bool modifiable, - const int type); + const SkillType::SkillType type); void addSkill(const int id, const std::string &name, const int level, const int range, const bool modifiable, - const int type); + const SkillType::SkillType type); SkillInfo* getSkill(const int id) const A_WARN_UNUSED; diff --git a/src/net/ea/skillhandler.cpp b/src/net/ea/skillhandler.cpp index f3c2a6982..8a7f42d82 100644 --- a/src/net/ea/skillhandler.cpp +++ b/src/net/ea/skillhandler.cpp @@ -88,8 +88,11 @@ void SkillHandler::processPlayerSkillUp(Net::MessageIn &msg) PlayerInfo::setSkillLevel(skillId, level); if (skillDialog) { - if (!skillDialog->updateSkill(skillId, range, up, 0)) - skillDialog->addSkill(skillId, "", level, range, up, 0); + if (!skillDialog->updateSkill(skillId, range, up, SkillType::Unknown)) + { + skillDialog->addSkill(skillId, "", level, + range, up, SkillType::Unknown); + } } } diff --git a/src/net/eathena/skillhandler.cpp b/src/net/eathena/skillhandler.cpp index 09580b8fc..1f2d9a8ba 100644 --- a/src/net/eathena/skillhandler.cpp +++ b/src/net/eathena/skillhandler.cpp @@ -107,7 +107,8 @@ void SkillHandler::processPlayerSkills(Net::MessageIn &msg) for (int k = 0; k < skillCount; k++) { const int skillId = msg.readInt16("skill id"); - const int inf = msg.readInt32("inf"); + const SkillType::SkillType inf = static_cast( + msg.readInt32("inf")); const int level = msg.readInt16("skill level"); msg.readInt16("sp"); const int range = msg.readInt16("range"); diff --git a/src/net/tmwa/skillhandler.cpp b/src/net/tmwa/skillhandler.cpp index 8b0d6f662..65f86d4bc 100644 --- a/src/net/tmwa/skillhandler.cpp +++ b/src/net/tmwa/skillhandler.cpp @@ -109,7 +109,8 @@ void SkillHandler::processPlayerSkills(Net::MessageIn &msg) for (int k = 0; k < skillCount; k++) { const int skillId = msg.readInt16(); - const int inf = msg.readInt16(); + const SkillType::SkillType inf = static_cast( + msg.readInt16()); msg.skip(2); // skill pool flags const int level = msg.readInt16(); msg.readInt16(); // sp diff --git a/src/resources/skilltype.h b/src/resources/skilltype.h index 79384762f..27860cac1 100644 --- a/src/resources/skilltype.h +++ b/src/resources/skilltype.h @@ -25,6 +25,7 @@ namespace SkillType { enum SkillType { + Unknown = 0, Attack = 1, Ground = 2, Self = 4, -- cgit v1.2.3-70-g09d2