summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/models/skillmodel.h3
-rw-r--r--src/gui/popups/popupmenu.cpp3
-rw-r--r--src/gui/popups/skillpopup.cpp2
-rw-r--r--src/gui/widgets/skillinfo.cpp191
-rw-r--r--src/gui/widgets/skillinfo.h99
5 files changed, 5 insertions, 293 deletions
diff --git a/src/gui/models/skillmodel.h b/src/gui/models/skillmodel.h
index d7695253d..8695e548d 100644
--- a/src/gui/models/skillmodel.h
+++ b/src/gui/models/skillmodel.h
@@ -23,9 +23,10 @@
#ifndef GUI_MODELS_SKILLMODEL_H
#define GUI_MODELS_SKILLMODEL_H
-#include "gui/widgets/skillinfo.h"
#include "gui/models/listmodel.h"
+#include "resources/skill/skillinfo.h"
+
#include "localconsts.h"
class SkillModel final : public ListModel
diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp
index 7bed7446f..4c417036b 100644
--- a/src/gui/popups/popupmenu.cpp
+++ b/src/gui/popups/popupmenu.cpp
@@ -60,7 +60,6 @@
#include "gui/widgets/createwidget.h"
#include "gui/widgets/progressbar.h"
#include "gui/widgets/scrollarea.h"
-#include "gui/widgets/skillinfo.h"
#include "gui/widgets/textfield.h"
#include "gui/widgets/tabs/chat/whispertab.h"
@@ -92,6 +91,8 @@
#include "resources/map/mapitem.h"
#include "resources/map/speciallayer.h"
+#include "resources/skill/skillinfo.h"
+
#include "utils/copynpaste.h"
#include "utils/gettext.h"
#include "utils/process.h"
diff --git a/src/gui/popups/skillpopup.cpp b/src/gui/popups/skillpopup.cpp
index b88fa83ca..efd9e1f50 100644
--- a/src/gui/popups/skillpopup.cpp
+++ b/src/gui/popups/skillpopup.cpp
@@ -28,13 +28,13 @@
#include "gui/fonts/font.h"
#include "gui/widgets/label.h"
-#include "gui/widgets/skillinfo.h"
#include "gui/widgets/textbox.h"
#include "utils/gettext.h"
#include "utils/stringutils.h"
#include "resources/skill/skilldata.h"
+#include "resources/skill/skillinfo.h"
#include "debug.h"
diff --git a/src/gui/widgets/skillinfo.cpp b/src/gui/widgets/skillinfo.cpp
deleted file mode 100644
index 8c7fbefea..000000000
--- a/src/gui/widgets/skillinfo.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2004-2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2016 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 "gui/widgets/skillinfo.h"
-
-#include "being/playerinfo.h"
-
-#include "gui/models/skillmodel.h"
-
-#include "utils/stringutils.h"
-
-#include "resources/skilltypelist.h"
-
-#include "resources/skill/skilldata.h"
-
-#include "debug.h"
-
-SkillInfo::SkillInfo() :
- skillLevel(),
- skillEffect(),
- useButton(),
- errorText(),
- castingAction(),
- castingRideAction(),
- castingSkyAction(),
- castingWaterAction(),
- dataMap(),
- model(nullptr),
- data(nullptr),
- level(0),
- selectedLevel(0),
- skillLevelWidth(0),
- id(0),
- range(0),
- sp(0),
- duration(0),
- durationTime(0),
- cooldown(0),
- castingSrcEffectId(-1),
- castingDstEffectId(-1),
- type(SkillType::Unknown),
- owner(SkillOwner::Player),
- modifiable(Modifiable_false),
- visible(Visible_false),
- alwaysVisible(Visible_false),
- useTextParameter(false)
-{
- dataMap[0] = new SkillData();
- data = dataMap[0];
-}
-
-SkillInfo::~SkillInfo()
-{
- FOR_EACH (SkillDataMapIter, it, dataMap)
- delete (*it).second;
- dataMap.clear();
-}
-
-void SkillInfo::update()
-{
- const int baseLevel = PlayerInfo::getSkillLevel(id);
- if (modifiable == Modifiable_false && baseLevel == 0)
- {
- if (visible == Visible_true)
- {
- visible = Visible_false;
- if (model)
- model->updateVisibilities();
- }
- return;
- }
-
- const bool updateVisibility = (visible == Visible_false);
- visible = Visible_true;
-
- if (baseLevel == 0)
- {
- skillLevel.clear();
- }
- else
- {
- if (!selectedLevel)
- {
- // TRANSLATORS: skill level
- skillLevel = strprintf(_("Lvl: %d"), baseLevel);
- }
- else
- {
- // TRANSLATORS: skill level
- skillLevel = strprintf(_("Lvl: %d / %d"),
- selectedLevel,
- baseLevel);
- }
- }
-
- // TRANSLATORS: skill type
- const char *const typeStr = _("Type: %s");
-
- if (type == SkillType::Unknown)
- {
- // TRANSLATORS: Skill type
- skillEffect = strprintf(typeStr, _("Unknown"));
- }
- else
- {
- for (size_t f = 0; f < skillTypeListSize; f ++)
- {
- const SkillTypeEntry &item = skillTypeList[f];
- if ((item.type & type) != 0)
- {
- if (!skillEffect.empty())
- skillEffect.append(", ");
- skillEffect.append(strprintf(typeStr, item.name));
- }
- }
- }
- if (skillEffect.empty())
- {
- // TRANSLATORS: Skill type
- skillEffect = strprintf(typeStr, _("Unknown:"));
- skillEffect.append(" ").append(toString(CAST_S32(type)));
- }
-
- if (sp)
- {
- // TRANSLATORS: skill mana
- skillEffect.append(strprintf(_(" / Mana: -%d"), sp));
- }
-
- if (range > 0)
- {
- if (!skillEffect.empty())
- skillEffect.append(" / ");
- // TRANSLATORS: skill range
- skillEffect.append(strprintf(_("Range: %d"), range));
- }
-
- level = baseLevel;
- if (selectedLevel > level)
- selectedLevel = level;
-
- skillLevelWidth = -1;
-
- if (updateVisibility && model)
- model->updateVisibilities();
-
- data = getData(level);
- if (!data)
- data = dataMap[0];
-}
-
-
-void SkillInfo::addData(const int level1, SkillData *const data1)
-{
- dataMap[level1] = data1;
-}
-
-SkillData *SkillInfo::getData(const int level1) const
-{
- const SkillDataMapCIter it = dataMap.find(level1);
- if (it == dataMap.end())
- return nullptr;
- return (*it).second;
-}
-
-SkillData *SkillInfo::getData1(const int lev) const
-{
- const SkillDataMapCIter it = dataMap.find(lev);
- if (it == dataMap.end())
- return (*dataMap.begin()).second;
- return (*it).second;
-}
diff --git a/src/gui/widgets/skillinfo.h b/src/gui/widgets/skillinfo.h
deleted file mode 100644
index dc83a1a63..000000000
--- a/src/gui/widgets/skillinfo.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2004-2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2016 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 GUI_WIDGETS_SKILLINFO_H
-#define GUI_WIDGETS_SKILLINFO_H
-
-#include "enums/simpletypes/modifiable.h"
-#include "enums/simpletypes/visible.h"
-
-#include "enums/resources/skillowner.h"
-#include "enums/resources/skilltype.h"
-
-#include <string>
-#include <vector>
-#include <map>
-
-#include "localconsts.h"
-
-struct SkillData;
-
-class SkillModel;
-
-typedef std::map<int, SkillData*> SkillDataMap;
-typedef SkillDataMap::iterator SkillDataMapIter;
-typedef SkillDataMap::const_iterator SkillDataMapCIter;
-
-struct SkillInfo final
-{
- std::string skillLevel;
- std::string skillEffect;
- std::string useButton;
- std::string errorText;
- std::string castingAction;
- std::string castingRideAction;
- std::string castingSkyAction;
- std::string castingWaterAction;
- SkillDataMap dataMap;
- SkillModel *model;
- SkillData *data;
- int level;
- int selectedLevel;
- int skillLevelWidth;
- unsigned int id;
- int range;
- int sp;
- int duration;
- int durationTime;
- int cooldown;
- int castingSrcEffectId;
- int castingDstEffectId;
- SkillType::SkillType type;
- SkillOwner::Type owner;
- Modifiable modifiable;
- Visible visible;
- Visible alwaysVisible;
- bool useTextParameter;
-
- SkillInfo();
- A_DELETE_COPY(SkillInfo)
- ~SkillInfo();
-
- void update();
-
- SkillData *getData(const int level) const A_WARN_UNUSED;
- SkillData *getData1(const int level) const A_WARN_UNUSED;
-
- void addData(const int level, SkillData *const data);
-
- bool isUsable() const A_WARN_UNUSED
- {
- return type == SkillType::Attack
- || type == SkillType::Self
- || type == SkillType::Support;
- }
-};
-
-typedef std::vector<SkillInfo*> SkillList;
-typedef SkillList::iterator SkillListIter;
-
-#endif // GUI_WIDGETS_SKILLINFO_H