diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/resources/resourcemanager.cpp | 18 | ||||
-rw-r--r-- | src/resources/resourcemanager.h | 7 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/resources/resourcemanager.cpp b/src/resources/resourcemanager.cpp index e9595093..4f409431 100644 --- a/src/resources/resourcemanager.cpp +++ b/src/resources/resourcemanager.cpp @@ -32,6 +32,8 @@ #include "../log.h" +#include "../graphic/spriteset.h" + ResourceManager *ResourceManager::instance = NULL; @@ -199,6 +201,22 @@ ResourceManager::getSoundEffect(const std::string &idPath) return (SoundEffect*)get(SOUND_EFFECT, idPath); } +Spriteset* ResourceManager::createSpriteset(const std::string &imagePath, + int w, int h) +{ + Image *img; + + if (!(img = getImage(imagePath))) { + return NULL; + } + + Spriteset *result = new Spriteset(img, w, h); + + img->decRef(); + + return result; +} + void ResourceManager::release(const std::string &idPath) { diff --git a/src/resources/resourcemanager.h b/src/resources/resourcemanager.h index a5a66901..6ebcd590 100644 --- a/src/resources/resourcemanager.h +++ b/src/resources/resourcemanager.h @@ -32,6 +32,7 @@ class Resource; class Image; class Music; class SoundEffect; +class Spriteset; /** * A class for loading and managing resources. @@ -138,6 +139,12 @@ class ResourceManager getSoundEffect(const std::string &idPath); /** + * Creates a spriteset based on the image referenced by the given + * path and the supplied sprite sizes + */ + Spriteset* createSpriteset(const std::string &imagePath, int w, int h); + + /** * Releases a resource, removing it from the set of loaded resources. */ void |