ManaPlus
skillmodel.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 "gui/models/skillmodel.h"
25 
26 #include "utils/foreach.h"
27 
29 
30 #include "debug.h"
31 
33  ListModel(),
34  mSkills(),
35  mVisibleSkills()
36 {
37 }
38 
39 SkillInfo *SkillModel::getSkillAt(const int i) const
40 {
41  if (i < 0 || i >= CAST_S32(mVisibleSkills.size()))
42  return nullptr;
43  return mVisibleSkills.at(i);
44 }
45 
46 std::string SkillModel::getElementAt(int i)
47 {
48  const SkillInfo *const info = getSkillAt(i);
49  if (info != nullptr)
50  return info->data->name;
51  return std::string();
52 }
53 
55 {
56  mVisibleSkills.clear();
57 
58  FOR_EACH (SkillList::const_iterator, it, mSkills)
59  {
60  if (((*it) != nullptr) && (*it)->visible == Visible_true)
61  mVisibleSkills.push_back((*it));
62  }
63 }
#define CAST_S32
Definition: cast.h:30
SkillList mSkills
Definition: skillmodel.h:55
std::string getElementAt(int i)
Definition: skillmodel.cpp:46
void updateVisibilities()
Definition: skillmodel.cpp:54
SkillInfo * getSkillAt(const int i) const
Definition: skillmodel.cpp:39
SkillList mVisibleSkills
Definition: skillmodel.h:56
#define FOR_EACH(type, iter, array)
Definition: foreach.h:25
bool info(InputEvent &event)
Definition: commands.cpp:57
const bool Visible_true
Definition: visible.h:30