From a0c7a0e2d34a13f2c3e86f662e352977ebe2ae73 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 10 Apr 2013 00:33:27 +0300 Subject: Add option to left all per map sprites in memory if once was loaded. This can prevent random lags and also can use more memory. --- src/resources/spritedef.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/resources/spritedef.cpp') diff --git a/src/resources/spritedef.cpp b/src/resources/spritedef.cpp index ff9b71901..b417345fd 100644 --- a/src/resources/spritedef.cpp +++ b/src/resources/spritedef.cpp @@ -73,7 +73,8 @@ unsigned SpriteDef::findNumber(const unsigned num) const return min; } -SpriteDef *SpriteDef::load(const std::string &animationFile, const int variant) +SpriteDef *SpriteDef::load(const std::string &animationFile, + const int variant, bool prot) { const size_t pos = animationFile.find('|'); std::string palettes; @@ -90,7 +91,7 @@ SpriteDef *SpriteDef::load(const std::string &animationFile, const int variant) std::string errorFile = paths.getStringValue("sprites").append( paths.getStringValue("spriteErrorFile")); if (animationFile != errorFile) - return load(errorFile, 0); + return load(errorFile, 0, prot); else return nullptr; } @@ -101,6 +102,11 @@ SpriteDef *SpriteDef::load(const std::string &animationFile, const int variant) def->substituteActions(); if (serverVersion < 1) def->fixDeadAction(); + if (prot) + { + def->incRef(); + def->setProtected(true); + } return def; } -- cgit v1.2.3-70-g09d2