GCC Code Coverage Report
Directory: src/ Exec Total Coverage
File: src/resources/action.h Lines: 1 3 33.3 %
Date: 2021-03-17 Branches: 0 0 0.0 %

Line Branch Exec Source
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
27
#include "enums/resources/spritedirection.h"
28
29
#include "resources/memorycounter.h"
30
31
#include <map>
32
33
#include "localconsts.h"
34
35
class Animation;
36
37
/**
38
 * An action consists of several animations, one for each direction.
39
 */
40
class Action final : public MemoryCounter
41
{
42
    public:
43
        explicit Action(const std::string &name) noexcept2;
44
45
        A_DELETE_COPY(Action)
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
53
                                      noexcept2 A_WARN_UNUSED;
54
55
        unsigned getNumber() const noexcept2 A_WARN_UNUSED
56
        { return mNumber; }
57
58
        void setNumber(const unsigned n) noexcept2
59
1297
        { 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
75
        Animations mAnimations;
76
        std::string mCounterName;
77
        unsigned mNumber;
78
};
79
80
#endif  // RESOURCES_ACTION_H