1 /* 2 * The ManaPlus Client 3 * Copyright (C) 2011-2019 The ManaPlus Developers 4 * Copyright (C) 2019-2021 Andrei Karas 5 * 6 * This file is part of The ManaPlus Client. 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 */ 21 22 #ifndef RESOURCES_MAP_OBJECTSLAYER_H 23 #define RESOURCES_MAP_OBJECTSLAYER_H 24 25 #include "resources/memorycounter.h" 26 27 #include "localconsts.h" 28 29 class MapObjectList; 30 31 class ObjectsLayer final : public MemoryCounter 32 { 33 public: 34 ObjectsLayer(const unsigned width, const unsigned height); 35 36 A_DELETE_COPY(ObjectsLayer) 37 38 ~ObjectsLayer() override final; 39 40 void addObject(const std::string &name, const int type, 41 const unsigned x, const unsigned y, 42 unsigned dx, unsigned dy); 43 44 MapObjectList *getAt(const unsigned x, 45 const unsigned y) const A_WARN_UNUSED; 46 47 int calcMemoryLocal() const override final; 48 getCounterName()49 std::string getCounterName() const override final 50 { return "objects layer"; } 51 52 private: 53 MapObjectList **mTiles; 54 unsigned mWidth; 55 unsigned mHeight; 56 }; 57 58 #endif // RESOURCES_MAP_OBJECTSLAYER_H 59