ManaPlus
action.h
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 #ifndef RESOURCES_ACTION_H
25 #define RESOURCES_ACTION_H
26 
28 
30 
31 #include <map>
32 
33 #include "localconsts.h"
34 
35 class Animation;
36 
40 class Action final : public MemoryCounter
41 {
42  public:
43  explicit Action(const std::string &name) noexcept2;
44 
46 
47  ~Action() override final;
48 
49  void setAnimation(const SpriteDirection::Type direction,
50  Animation *const animation) noexcept2;
51 
52  const Animation *getAnimation(SpriteDirection::Type direction) const
54 
56  { return mNumber; }
57 
58  void setNumber(const unsigned n) noexcept2
59  { mNumber = n; }
60 
61  void setLastFrameDelay(const int delay) noexcept2;
62 
63  int calcMemoryLocal() const override final;
64 
65  int calcMemoryChilds(const int level) const override final;
66 
67  std::string getCounterName() const override
68  { return mCounterName; }
69 
70  protected:
71  typedef std::map<SpriteDirection::Type, Animation*> Animations;
72  typedef Animations::iterator AnimationIter;
73  typedef Animations::const_iterator AnimationCIter;
74 
76  std::string mCounterName;
77  unsigned mNumber;
78 };
79 
80 #endif // RESOURCES_ACTION_H
Definition: action.h:41
void setLastFrameDelay(const int delay)
Definition: action.cpp:80
void setAnimation(const SpriteDirection::Type direction, Animation *const animation)
Definition: action.cpp:74
Action(const std::string &name)
Definition: action.cpp:33
unsigned mNumber
Definition: action.h:77
std::string getCounterName() const
Definition: action.h:67
std::string mCounterName
Definition: action.h:76
Animations::const_iterator AnimationCIter
Definition: action.h:73
std::map< SpriteDirection::Type, Animation * > Animations
Definition: action.h:71
Animations mAnimations
Definition: action.h:75
~Action()
Definition: action.cpp:41
Animations::iterator AnimationIter
Definition: action.h:72
const Animation * getAnimation(SpriteDirection::Type direction) const
Definition: action.cpp:46
int calcMemoryChilds(const int level) const
Definition: action.cpp:96
int calcMemoryLocal() const
Definition: action.cpp:91
void setNumber(const unsigned n)
Definition: action.h:58
unsigned getNumber() const
Definition: action.h:55
#define override
Definition: localconsts.h:47
#define A_WARN_UNUSED
Definition: localconsts.h:161
#define noexcept2
Definition: localconsts.h:50
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53