ManaPlus
simpleanimation.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_ANIMATION_SIMPLEANIMATION_H
25 #define RESOURCES_ANIMATION_SIMPLEANIMATION_H
26 
27 #include "utils/xml.h"
28 
29 #include "localconsts.h"
30 
31 class Animation;
32 class Graphics;
33 class Image;
34 class ImageSet;
35 
36 struct Frame;
37 
43 {
44  public:
49  explicit SimpleAnimation(Animation *const animation);
50 
54  SimpleAnimation(XmlNodeConstPtr animationNode,
55  const std::string& dyePalettes);
56 
58 
60 
61  void setFrame(int frame);
62 
63  int getLength() const A_WARN_UNUSED;
64 
65  bool update(const int timePassed);
66 
67  void draw(Graphics *const graphics,
68  const int posX, const int posY) const A_NONNULL(2);
69 
73  void reset();
74 
76 
77  private:
78  void initializeAnimation(XmlNodeConstPtr animationNode,
79  const std::string &dyePalettes);
80 
83 
86 
89 
92 
95 
97 };
98 
99 #endif // RESOURCES_ANIMATION_SIMPLEANIMATION_H
bool update(const int timePassed)
Animation * mAnimation
const Frame * mCurrentFrame
ImageSet * mImageSet
int getLength() const
Image * getCurrentImage() const
void setFrame(int frame)
void draw(Graphics *const graphics, const int posX, const int posY) const
void initializeAnimation(const xmlNodePtr animationNode, const std::string &dyePalettes)
SimpleAnimation(Animation *const animation)
#define A_WARN_UNUSED
Definition: localconsts.h:161
#define A_NONNULL(...)
Definition: localconsts.h:168
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53
Definition: frame.h:39