GCC Code Coverage Report
Directory: src/ Exec Total Coverage
File: src/particle/textparticle.h Lines: 0 5 0.0 %
Date: 2017-11-29 Branches: 0 0 0.0 %

Line Branch Exec Source
1
/*
2
 *  The ManaPlus Client
3
 *  Copyright (C) 2006-2009  The Mana World Development Team
4
 *  Copyright (C) 2009-2010  The Mana Developers
5
 *  Copyright (C) 2011-2017  The ManaPlus Developers
6
 *
7
 *  This file is part of The ManaPlus Client.
8
 *
9
 *  This program is free software; you can redistribute it and/or modify
10
 *  it under the terms of the GNU General Public License as published by
11
 *  the Free Software Foundation; either version 2 of the License, or
12
 *  any later version.
13
 *
14
 *  This program is distributed in the hope that it will be useful,
15
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 *  GNU General Public License for more details.
18
 *
19
 *  You should have received a copy of the GNU General Public License
20
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 */
22
23
#ifndef PARTICLE_TEXTPARTICLE_H
24
#define PARTICLE_TEXTPARTICLE_H
25
26
#include "particle/particle.h"
27
28
class TextParticle final : public Particle
29
{
30
    public:
31
        /**
32
         * Constructor.
33
         */
34
        TextParticle(const std::string &text,
35
                     const Color *restrict const color,
36
                     Font *restrict const font,
37
                     const bool outline = false) A_NONNULL(3, 4);
38
39
        A_DELETE_COPY(TextParticle)
40
41
        /**
42
         * Draws the particle image.
43
         */
44
        void draw(Graphics *restrict const graphics,
45
                  const int offsetX,
46
                  const int offsetY) const
47
                  restrict2 override final A_NONNULL(2);
48
49
        // hack to improve text visibility
50
        int getPixelY() const restrict2 override final A_WARN_UNUSED
51
        { return CAST_S32(mPos.y + mPos.z); }
52
53
        // hack to improve text visibility (for sorting only)
54
        int getSortPixelY() const restrict2 override final A_WARN_UNUSED
55
        { return CAST_S32(mPos.y + mPos.z); }
56
57
    private:
58
        /**< Text of the particle. */
59
        std::string mText;
60
        /**< Font used for drawing the text. */
61
        Font *restrict mTextFont A_NONNULLPOINTER;
62
        /**< Color used for drawing the text. */
63
        const Color *restrict mColor A_NONNULLPOINTER;
64
        int mTextWidth;
65
        /**< Make the text better readable */
66
        bool mOutline;
67
};
68
69
#endif  // PARTICLE_TEXTPARTICLE_H