Make a nice default gradient when there isn't already a background or gradient, issue...
authorTim Goya <tuxdev103@gmail.com>
Thu, 8 Mar 2007 15:01:58 +0000 (15:01 +0000)
committerTim Goya <tuxdev103@gmail.com>
Thu, 8 Mar 2007 15:01:58 +0000 (15:01 +0000)
SVN-Revision: 4941

src/sector.cpp

index 125d186..362f183 100644 (file)
@@ -177,6 +177,7 @@ Sector::parse_object(const std::string& name, const lisp::Lisp& reader)
 void
 Sector::parse(const lisp::Lisp& sector)
 {
+  bool has_background = false;
   lisp::ListIterator iter(&sector);
   while(iter.next()) {
     const std::string& token = iter.item();
@@ -202,11 +203,22 @@ Sector::parse(const lisp::Lisp& sector)
     } else {
       GameObject* object = parse_object(token, *(iter.lisp()));
       if(object) {
+        if(dynamic_cast<Background *>(object)) {
+           has_background = true;
+        } else if(dynamic_cast<Gradient *>(object)) {
+           has_background = true;
+        }
         add_object(object);
       }
     }
   }
 
+  if(!has_background) {
+    Gradient* gradient = new Gradient();
+    gradient->set_gradient(Color(0.3, 0.4, 0.75), Color(1, 1, 1));
+    add_object(gradient);
+  }
+
   update_game_objects();
 
   if(solid_tilemaps.size() < 1) log_warning << "sector '" << name << "' does not contain a solid tile layer." << std::endl;