* Make Sprite an IMMObject.
[matthijs/ABM2.git] / ABM2 / Engine / SpriteManager.cpp
diff --git a/ABM2/Engine/SpriteManager.cpp b/ABM2/Engine/SpriteManager.cpp
new file mode 100644 (file)
index 0000000..9a6fc24
--- /dev/null
@@ -0,0 +1,26 @@
+#include "SpriteManager.h"
+
+
+
+CSpriteManager::CSpriteManager(Graphics *g, SpriteData *sd)
+{
+       /* Load all sprites */
+       while (sd->id != 0)
+       {
+               /* Colour given is for transparency, Sprite has no constructor
+                * without a key colour... */
+               Sprite* s = new Sprite(sd->filename, COLOUR_RGBA(248, 0, 248, 255), sd->width, sd->height, g);
+               if (s) {
+                       /* Ensure the needed spot is present */
+                       while (this->loadedSprites.size() <= sd->id)
+                               this->loadedSprites.push_back(NULL);
+                       this->loadedSprites[sd->id] = CMMPointer<Sprite>(s);
+               }
+               sd++;
+       }
+}
+
+CMMPointer<Sprite> CSpriteManager::getSprite(unsigned int id)
+{
+       return this->loadedSprites[id];
+}