GCC Code Coverage Report
Directory: src/ Exec Total Coverage
File: src/being/flooritem.h Lines: 0 14 0.0 %
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 BEING_FLOORITEM_H
25
#define BEING_FLOORITEM_H
26
27
#include "const/resources/item/cards.h"
28
29
#include "enums/resources/cursor.h"
30
31
#include "enums/resources/item/itemtype.h"
32
33
#include "enums/simpletypes/damaged.h"
34
#include "enums/simpletypes/identified.h"
35
#include "enums/simpletypes/itemcolor.h"
36
37
#include "being/actorsprite.h"
38
39
class ItemInfo;
40
41
/**
42
 * An item lying on the floor.
43
 */
44
class FloorItem final : public ActorSprite
45
{
46
    public:
47
        /**
48
         * Constructor.
49
         *
50
         * @param id     the unique ID of this item instance
51
         * @param itemId the item ID
52
         * @param x      the x position in tiles
53
         * @param y      the y position in tiles
54
         * @param amount the item amount
55
         * @param color  the item color
56
         */
57
        FloorItem(const BeingId id,
58
                  const int itemId,
59
                  const int x, const int y,
60
                  const ItemTypeT itemType,
61
                  const int amount,
62
                  const int refine,
63
                  const ItemColor color,
64
                  const Identified identified,
65
                  const Damaged damaged,
66
                  const int *const cards);
67
68
        A_DELETE_COPY(FloorItem)
69
70
        void postInit(Map *const map, int subX, int subY);
71
72
        ActorTypeT getType() const noexcept2 override final A_WARN_UNUSED
73
        { return ActorType::FloorItem; }
74
75
        void draw(Graphics *const graphics,
76
                  const int offsetX, const int offsetY)
77
                  const override final A_NONNULL(2);
78
79
        /**
80
         * Returns the item ID.
81
         */
82
        int getItemId() const noexcept2 A_WARN_UNUSED
83
        { return mItemId; }
84
85
        /**
86
         * Returns the item info for this floor item. Useful for adding an item
87
         * link for the floor item to chat.
88
         */
89
        const ItemInfo &getInfo() const A_WARN_UNUSED;
90
91
        std::string getName() const A_WARN_UNUSED;
92
93
        int getTileX() const override final A_WARN_UNUSED
94
        { return mX; }
95
96
        int getTileY() const override final A_WARN_UNUSED
97
        { return mY; }
98
99
        void incrementPickup() noexcept2
100
        { mPickupCount ++; }
101
102
        unsigned getPickupCount() const noexcept2 A_WARN_UNUSED
103
        { return mPickupCount; }
104
105
        ItemColor getColor() const noexcept2 A_WARN_UNUSED
106
        { return mColor; }
107
108
        bool getShowMsg() const noexcept2 A_WARN_UNUSED
109
        { return mShowMsg; }
110
111
        void setShowMsg(const bool n) noexcept2
112
        { mShowMsg = n; }
113
114
        void disableHightlight() noexcept2
115
        { mHighlight = false; }
116
117
        CursorT getHoverCursor() const noexcept2 A_WARN_UNUSED
118
        { return mCursor; }
119
120
        void setCards(const int *const cards, int sz);
121
122
        int getCard(const int index) const;
123
124
        int getRefine() const noexcept2 A_WARN_UNUSED
125
        { return mRefine; }
126
127
        ItemTypeT getItemType() const noexcept2 A_WARN_UNUSED
128
        { return mItemType; }
129
130
        Identified getIdentified() const noexcept2 A_WARN_UNUSED
131
        { return mIdentified; }
132
133
        Damaged getDamaged() const noexcept2 A_WARN_UNUSED
134
        { return mDamaged; }
135
136
    private:
137
        int mCards[maxCards];
138
        int mItemId;
139
        int mX, mY;
140
        time_t mDropTime;
141
        int mAmount;
142
        int mRefine;
143
        int mHeightPosDiff;
144
        ItemTypeT mItemType;
145
        unsigned int mPickupCount;
146
        CursorT mCursor;
147
        ItemColor mColor;
148
        Identified mIdentified;
149
        Damaged mDamaged;
150
        bool mShowMsg;
151
        bool mHighlight;
152
};
153
154
#endif  // BEING_FLOORITEM_H