summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/resources/resourcemanager.cpp18
-rw-r--r--src/resources/resourcemanager.h7
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