summaryrefslogtreecommitdiff
path: root/src/resources/sprite
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/sprite')
-rw-r--r--src/resources/sprite/spritedef.cpp37
-rw-r--r--src/resources/sprite/spritedef.h4
2 files changed, 41 insertions, 0 deletions
diff --git a/src/resources/sprite/spritedef.cpp b/src/resources/sprite/spritedef.cpp
index d157028ef..ba3abaec9 100644
--- a/src/resources/sprite/spritedef.cpp
+++ b/src/resources/sprite/spritedef.cpp
@@ -593,3 +593,40 @@ bool SpriteDef::addSequence(const int start,
}
return false;
}
+
+int SpriteDef::calcMemoryLocal()
+{
+ int sz = sizeof(SpriteDef) +
+ sizeof(ImageSets) +
+ sizeof(Actions) +
+ sizeof(std::set<std::string>) +
+ Resource::calcMemoryLocal();
+ FOR_EACH (std::set<std::string>::const_iterator, it, mProcessedFiles)
+ {
+ sz += (*it).capacity();
+ }
+ return sz;
+}
+
+int SpriteDef::calcMemoryChilds(const int level)
+{
+ int sz = 0;
+ FOR_EACH (ImageSets::iterator, it, mImageSets)
+ {
+ sz += (*it).first.capacity();
+ ImageSet *const imageSet = (*it).second;
+ sz += imageSet->calcMemory(level + 1);
+ }
+ FOR_EACH (ActionsIter, it, mActions)
+ {
+ sz += sizeof(unsigned);
+ ActionMap *const actionMap = (*it).second;
+ FOR_EACHP (ActionMap::iterator, it2, actionMap)
+ {
+ sz += (*it2).first.capacity();
+ Action *const action = (*it2).second;
+ sz += action->calcMemory(level + 1);
+ }
+ }
+ return sz;
+}
diff --git a/src/resources/sprite/spritedef.h b/src/resources/sprite/spritedef.h
index c7a86f1e6..aea602cee 100644
--- a/src/resources/sprite/spritedef.h
+++ b/src/resources/sprite/spritedef.h
@@ -68,6 +68,10 @@ class SpriteDef final : public Resource
void addAction(const unsigned hp, const std::string &name,
Action *const action);
+ int calcMemoryLocal() override final;
+
+ int calcMemoryChilds(const int level) override final;
+
static bool addSequence(const int start,
const int end,
const int delay,