summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-04-29 21:47:59 +0300
committerAndrei Karas <akaras@inbox.ru>2016-04-29 21:47:59 +0300
commit0c97cbd3ab4a6f425e42c2413d7dfe06c2da014e (patch)
tree17c2ff6abcf8af8ae7550963e256323d6cb0b61e /src
parent10b7c4a1313395291a77c50189b31e9daf38a2b0 (diff)
downloadplus-0c97cbd3ab4a6f425e42c2413d7dfe06c2da014e.tar.gz
plus-0c97cbd3ab4a6f425e42c2413d7dfe06c2da014e.tar.bz2
plus-0c97cbd3ab4a6f425e42c2413d7dfe06c2da014e.tar.xz
plus-0c97cbd3ab4a6f425e42c2413d7dfe06c2da014e.zip
Add memory counting into MapHeights.
Diffstat (limited to 'src')
-rw-r--r--src/resources/map/map.cpp3
-rw-r--r--src/resources/map/mapheights.cpp6
-rw-r--r--src/resources/map/mapheights.h9
3 files changed, 16 insertions, 2 deletions
diff --git a/src/resources/map/map.cpp b/src/resources/map/map.cpp
index 7045706e1..51bd7952c 100644
--- a/src/resources/map/map.cpp
+++ b/src/resources/map/map.cpp
@@ -1745,6 +1745,7 @@ int Map::calcMemoryChilds(const int level) const
mTempLayer->calcMemory(level + 1);
if (mObjects)
mObjects->calcMemory(level + 1);
- // +++ need calc mHeights
+ if (mHeights)
+ mHeights->calcMemory(level + 1);
return sz;
}
diff --git a/src/resources/map/mapheights.cpp b/src/resources/map/mapheights.cpp
index b4347cd1f..5d5c30aa8 100644
--- a/src/resources/map/mapheights.cpp
+++ b/src/resources/map/mapheights.cpp
@@ -39,3 +39,9 @@ void MapHeights::setHeight(const int x, const int y, const uint8_t height)
{
mTiles[x + y * mWidth] = height;
}
+
+int MapHeights::calcMemoryLocal() const
+{
+ return sizeof(MapHeights) +
+ mWidth * mHeight;
+}
diff --git a/src/resources/map/mapheights.h b/src/resources/map/mapheights.h
index 333e7fac4..86962c0de 100644
--- a/src/resources/map/mapheights.h
+++ b/src/resources/map/mapheights.h
@@ -21,9 +21,11 @@
#ifndef RESOURCES_MAP_MAPHEIGHTS_H
#define RESOURCES_MAP_MAPHEIGHTS_H
+#include "resources/memorycounter.h"
+
#include "localconsts.h"
-class MapHeights final
+class MapHeights final : public MemoryCounter
{
public:
friend class Map;
@@ -40,6 +42,11 @@ class MapHeights final
{ return x < mWidth && y < mHeight ? mTiles[x + y * mWidth]
: CAST_U8(0U); }
+ int calcMemoryLocal() const override final;
+
+ std::string getCounterName() const override final
+ { return "heights leyer"; }
+
private:
int mWidth;
int mHeight;