small fix to MrRocket
[supertux.git] / src / object / background.cpp
index 15333dd..b03b05f 100644 (file)
@@ -25,6 +25,7 @@
 #include "video/drawing_context.h"
 #include "lisp/lisp.h"
 #include "lisp/writer.h"
+#include "object_factory.h"
 
 Background::Background()
   : type(INVALID), layer(LAYER_BACKGROUND0), image(0)
@@ -38,12 +39,12 @@ Background::Background(const lisp::Lisp& reader)
   if(reader.get("image", imagefile) 
       && reader.get("speed", speed)) {
     set_image(imagefile, speed);
+  } else {
+    std::vector <unsigned int> bkgd_top_color, bkgd_bottom_color;
+    if(reader.get_vector("top_color", bkgd_top_color) &&
+        reader.get_vector("bottom_color", bkgd_bottom_color))
+      set_gradient(Color(bkgd_top_color), Color(bkgd_bottom_color));
   }
-
-  std::vector <unsigned int> bkgd_top_color, bkgd_bottom_color;
-  if(reader.get_vector("top_color", bkgd_top_color) &&
-     reader.get_vector("bottom_color", bkgd_bottom_color))
-    set_gradient(Color(bkgd_top_color), Color(bkgd_bottom_color));
 }
 
 Background::~Background()
@@ -128,3 +129,4 @@ Background::draw(DrawingContext& context)
   }
 }
 
+IMPLEMENT_FACTORY(Background, "background");