Index: trunk/src/lib/graphics/importer/texture_sequence.cc
===================================================================
--- trunk/src/lib/graphics/importer/texture_sequence.cc	(revision 8316)
+++ trunk/src/lib/graphics/importer/texture_sequence.cc	(revision 8324)
@@ -128,5 +128,5 @@
 /**
  * @brief Loads an Image-Series into the TextureSequence.
- * @param imagePrefix The Prefix of the Image
+ * @param imageNameSubstitue The Prefix of the Image
  * @param from From which image
  * @param to To which image
@@ -137,26 +137,26 @@
  * @note important is, that the count of ###'s is correct.
  */
-bool TextureSequence::loadImageSeries(const std::string& imagePrefix, unsigned int from, unsigned int to)
+bool TextureSequence::loadImageSeries(const std::string& imageNameSubstitue, unsigned int from, unsigned int to)
 {
   unsigned int index = 0;
   unsigned int frameSize = 0;
   // search for the special character # in the LoadParam
-  if ((index = imagePrefix.find("_#")) != std::string::npos)
-  {
-    std::string _imagePrefix = imagePrefix;
+  if ((index = imageNameSubstitue.find("_#")) != std::string::npos)
+  {
+    std::string _imageNameSubstitue = imageNameSubstitue;
     index++; // start at #
-    while(imagePrefix[index+frameSize] == '#')
+    while(imageNameSubstitue[index+frameSize] == '#')
     {
-      _imagePrefix[index+frameSize] = '0';
+      _imageNameSubstitue[index+frameSize] = '0';
       frameSize++;
     }
 
-    PRINTF(4)("Found %d '#'s in %s... searching for LOD's\n", frameSize, imagePrefix.c_str());
+    PRINTF(4)("Found %d '#'s in %s... searching for LOD's\n", frameSize, imageNameSubstitue.c_str());
     char tmpString[32];
     for (unsigned int i = from; i < to; i++)
     {
       sprintf(tmpString, "%d", i);
-      _imagePrefix.replace(index+frameSize -strlen(tmpString), strlen(tmpString), tmpString);
-      this->addFrame(_imagePrefix);
+      _imageNameSubstitue.replace(index+frameSize -strlen(tmpString), strlen(tmpString), tmpString);
+      this->addFrame(_imageNameSubstitue);
     }
     return true;
Index: trunk/src/lib/graphics/importer/texture_sequence.h
===================================================================
--- trunk/src/lib/graphics/importer/texture_sequence.h	(revision 8316)
+++ trunk/src/lib/graphics/importer/texture_sequence.h	(revision 8324)
@@ -23,5 +23,5 @@
     bool loadImageSeries(unsigned int count, ...);
     bool loadImageSeries(const std::vector<std::string>& textureNames, const std::string& prependFolder = "");
-    bool loadImageSeries(const std::string& imagePrefix, unsigned int from, unsigned int to);
+    bool loadImageSeries(const std::string& imageNameSubstitue, unsigned int from, unsigned int to);
     bool addFrame(const std::string& image);
     bool addFrame(SDL_Surface* surface);
@@ -34,4 +34,6 @@
     /** @returns the count of frames in this sequence */
     inline unsigned int getFrameCount() const { return this->textures.size(); };
+    /** @returns true if no Textures are stored inside of this TextureSequence */
+    inline bool empty() const { return textures.empty(); };
 
     //void gotoFrame(unsigned int frameNumber);
Index: trunk/src/lib/gui/gl/glgui_cursor.cc
===================================================================
--- trunk/src/lib/gui/gl/glgui_cursor.cc	(revision 8316)
+++ trunk/src/lib/gui/gl/glgui_cursor.cc	(revision 8324)
@@ -20,6 +20,4 @@
 #include "glgui_handler.h"
 #include "color.h"
-#include "texture_sequence.h"
-#include "loading/resource_manager.h" // HACK
 
 namespace OrxGui
@@ -67,22 +65,38 @@
     this->color = 0.0f;
 
-    this->seq = new TextureSequence();
-    this->seq->loadImageSeries(ResourceManager::getInstance()->getDataDir() + "/maps/reap_mouse/reap_mouse_##.tif", 0, 49);
+    this->resize();
+  }
 
-    this->resize();
+  /**
+   * @brief Loads an Image-Series onto the Cursor.
+   * @param imageNameSubstitue The Prefix of the Image
+   * @param from From which image
+   * @param to To which image
+   * @return true on success.
+   *
+   * @see TextureSequence:: loadTextureSequence(const std::string& imageNameSubstitue, unsigned int from, unsigned int to)
+   */
+  bool GLGuiCursor::loadTextureSequence(const std::string& imageNameSubstitue, unsigned int from, unsigned int to)
+  {
+    this->backMaterial().setDiffuse(1.0, 1.0, 1.0);
+    return this->seq.loadImageSeries(imageNameSubstitue, from, to);
   }
 
   void GLGuiCursor::tick(float dt)
   {
-    this->frameNumber += 25.0*dt;
-    if (frameNumber >= this->seq->getFrameCount())
-      frameNumber = 0.0;
-
-    this->color += dt*10.0;
-    if (this->color > 360.0)
-      this->color -= 360.0;
-    Vector color =  Color::HSVtoRGB(Vector(this->color, 1.0, 1.0));
-    this->backMaterial().setDiffuse(color.x, color.y, color.z);
-
+    if (!this->seq.empty())
+    {
+      this->frameNumber += 25.0*dt;
+      if (frameNumber >= this->seq.getFrameCount())
+        frameNumber = 0.0;
+    }
+    else
+    {
+      this->color += dt*10.0;
+      if (this->color > 360.0)
+        this->color -= 360.0;
+      Vector color =  Color::HSVtoRGB(Vector(this->color, 1.0, 1.0));
+      this->backMaterial().setDiffuse(color.x, color.y, color.z);
+    }
     //if (this->movement != Vector2D())
     {
@@ -110,11 +124,8 @@
   {
     this->beginDraw();
-    // HACK
-    glActiveTexture(GL_TEXTURE0);
-    glEnable(GL_TEXTURE_2D);
-    glBindTexture(GL_TEXTURE_2D, this->seq->getFrameTexture((int)frameNumber));
-    glColor3f(1,1,1);
-    glEnable(GL_BLEND);
-    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+    this->backMaterial().select();
+    if (!this->seq.empty())
+      glBindTexture(GL_TEXTURE_2D, this->seq.getFrameTexture((int)frameNumber));
     this->drawRect(this->backRect());
 
@@ -123,4 +134,8 @@
   }
 
+  /**
+   * @brief processes Events from the EventHandler.
+   * @param event the Event to process.
+   */
   void GLGuiCursor::process(const Event& event)
   {
Index: trunk/src/lib/gui/gl/glgui_cursor.h
===================================================================
--- trunk/src/lib/gui/gl/glgui_cursor.h	(revision 8316)
+++ trunk/src/lib/gui/gl/glgui_cursor.h	(revision 8324)
@@ -11,4 +11,6 @@
 #include "event_listener.h"
 #include "vector2D.h"
+
+#include "texture_sequence.h"
 
 class TextureSequence;
@@ -29,11 +31,13 @@
     virtual ~GLGuiCursor();
 
+
+    bool loadTextureSequence(const std::string& imagePrefix, unsigned int from, unsigned int to);
+
+
+    const Vector2D& position() const { return Element2D::getAbsCoor2D(); }
+
+    void setMaxBorders(const Vector2D& maxBorders) { this->_maxBorders = maxBorders; };
     static void setMouseSensitivity(float mouseSensitivity);
     static float mouseSensitivity() { return GLGuiCursor::_mouseSensitivity; };
-
-    void setMaxBorders(const Vector2D& maxBorders) { this->_maxBorders = maxBorders; };
-
-    void init();
-    const Vector2D& position() const { return Element2D::getAbsCoor2D(); }
 
 
@@ -41,4 +45,8 @@
     virtual void draw() const;
     virtual void process(const Event& event);
+
+  private:
+    void init();
+
   private:
 
@@ -50,7 +58,7 @@
     float         color; // so f****ing temporary... ... ....
 
-    static float _mouseSensitivity;
-    TextureSequence* seq;
-    float frameNumber;
+    static float        _mouseSensitivity;
+    TextureSequence     seq;
+    float               frameNumber;
 
   };
Index: trunk/src/lib/gui/gl/glgui_handler.cc
===================================================================
--- trunk/src/lib/gui/gl/glgui_handler.cc	(revision 8316)
+++ trunk/src/lib/gui/gl/glgui_handler.cc	(revision 8324)
@@ -42,5 +42,5 @@
     EventHandler::getInstance()->withUNICODE(ES_ALL, true );
 
-    this->cursor = NULL;
+    this->_cursor = NULL;
     for (unsigned int i = 0; i < EV_NUMBER; i++)
     {
@@ -64,17 +64,17 @@
   void GLGuiHandler::activateCursor()
   {
-    if (this->cursor == NULL)
-      this->cursor = new GLGuiCursor();
-    this->cursor->show();
-    this->cursor->setMaxBorders(Vector2D(GraphicsEngine::getInstance()->getResolutionX(), GraphicsEngine::getInstance()->getResolutionY()));
+    if (this->_cursor == NULL)
+      this->_cursor = new GLGuiCursor();
+    this->_cursor->show();
+    this->_cursor->setMaxBorders(Vector2D(GraphicsEngine::getInstance()->getResolutionX(), GraphicsEngine::getInstance()->getResolutionY()));
   }
 
   void GLGuiHandler::deactivateCursor(bool deleteCursor)
   {
-    if (this->cursor)
+    if (this->_cursor)
     {
       if (deleteCursor)
-        delete this->cursor;
-      this->cursor = NULL;
+        delete this->_cursor;
+      this->_cursor = NULL;
     }
   }
@@ -108,5 +108,5 @@
             if (GLGuiWidget::focused()->clickable())
             {
-              Vector2D cursorPos = (this->cursor != NULL) ? this->cursor->getAbsCoor2D() : Vector2D(event.x, event.y);
+              Vector2D cursorPos = (this->_cursor != NULL) ? this->_cursor->getAbsCoor2D() : Vector2D(event.x, event.y);
               GLGuiWidget::focused()->click(cursorPos - GLGuiWidget::focused()->getAbsCoor2D());
             }
@@ -116,5 +116,5 @@
             if (GLGuiWidget::focused()->clickable())
             {
-              Vector2D cursorPos = (this->cursor != NULL) ? this->cursor->getAbsCoor2D() : Vector2D(event.x, event.y);
+              Vector2D cursorPos = (this->_cursor != NULL) ? this->_cursor->getAbsCoor2D() : Vector2D(event.x, event.y);
               GLGuiWidget::focused()->release(cursorPos - GLGuiWidget::focused()->getAbsCoor2D());
             }
@@ -128,6 +128,6 @@
 
       case EV_VIDEO_RESIZE:
-        if (this->cursor != NULL)
-          this->cursor->setMaxBorders(Vector2D(event.resize.w, event.resize.h));
+        if (this->_cursor != NULL)
+          this->_cursor->setMaxBorders(Vector2D(event.resize.w, event.resize.h));
         break;
     }
@@ -147,11 +147,11 @@
   Vector2D GLGuiHandler::cursorPositionOverFocusedWidget() const
   {
-    return (this->cursor != NULL) ? this->cursor->getAbsCoor2D() : Vector2D(0,0);
+    return (this->_cursor != NULL) ? this->_cursor->getAbsCoor2D() : Vector2D(0,0);
   }
 
   const Vector2D& GLGuiHandler::cursorPositionAbs() const
   {
-    if (this->cursor)
-      return this->cursor->getAbsCoor2D();
+    if (this->_cursor)
+      return this->_cursor->getAbsCoor2D();
     else
       return Vector2D::nullVector();
@@ -160,6 +160,6 @@
   {
     assert (widget != NULL);
-    if (this->cursor)
-      return  this->cursor->getAbsCoor2D() - widget->getAbsCoor2D();
+    if (this->_cursor)
+      return  this->_cursor->getAbsCoor2D() - widget->getAbsCoor2D();
     else
       return Vector2D::nullVector();
@@ -179,5 +179,5 @@
     const std::list<BaseObject*>* objects = ClassList::getList(CL_GLGUI_WIDGET);
 
-    if (objects != NULL && this->cursor != NULL)
+    if (objects != NULL && this->_cursor != NULL)
     {
       for (std::list<BaseObject*>::const_iterator it = objects->begin(); it != objects->end(); it++)
@@ -187,5 +187,5 @@
         if (widget->isVisible() &&
             widget->focusable() &&
-            widget->focusOverWidget(this->cursor))
+            widget->focusOverWidget(this->_cursor))
         {
           // receiving Focus
Index: trunk/src/lib/gui/gl/glgui_handler.h
===================================================================
--- trunk/src/lib/gui/gl/glgui_handler.h	(revision 8316)
+++ trunk/src/lib/gui/gl/glgui_handler.h	(revision 8324)
@@ -28,5 +28,5 @@
     void activateCursor();
     void deactivateCursor(/** ignore param */ bool deleteCursor = true);
-    GLGuiCursor* getCursor() const { return this->cursor; }
+    GLGuiCursor* cursor() const { return this->_cursor; }
 
     Vector2D cursorPositionOverFocusedWidget() const;
@@ -48,5 +48,5 @@
 
     bool                 isActive;
-    GLGuiCursor*         cursor;
+    GLGuiCursor*         _cursor;
 
   };
Index: trunk/src/story_entities/simple_game_menu.cc
===================================================================
--- trunk/src/story_entities/simple_game_menu.cc	(revision 8316)
+++ trunk/src/story_entities/simple_game_menu.cc	(revision 8324)
@@ -27,4 +27,5 @@
 #include "fast_factory.h"
 #include "util/loading/factory.h"
+#include "loading/resource_manager.h"
 
 #include "world_entity.h"
@@ -74,4 +75,5 @@
   OrxGui::GLGuiHandler::getInstance()->activateCursor();
   OrxGui::GLGuiHandler::getInstance()->activate();
+  OrxGui::GLGuiHandler::getInstance()->cursor()->loadTextureSequence(ResourceManager::getInstance()->getDataDir() + "/" + "maps/reap_mouse/reap_mouse_##.tif", 0, 49);
   /////
 
