Check return value of some lisp.get calls
[supertux.git] / src / object / candle.cpp
index a3b8f15..0f93126 100644 (file)
@@ -28,15 +28,29 @@ Candle::Candle(const Reader& lisp)
     burning(true),
     flicker(true),
     lightcolor(1.0f, 1.0f, 1.0f),
-    candle_light_1(sprite_manager->create("images/objects/candle/candle-light-1.sprite")),
-    candle_light_2(sprite_manager->create("images/objects/candle/candle-light-2.sprite"))
+    candle_light_1(SpriteManager::current()->create("images/objects/candle/candle-light-1.sprite")),
+    candle_light_2(SpriteManager::current()->create("images/objects/candle/candle-light-2.sprite"))
 {
-  lisp.get("name", name);
-  lisp.get("burning", burning);
-  lisp.get("flicker", flicker);
+
+  if(!lisp.get("name", name))
+  {
+    log_warning << "Couldn't get \"name\" property for candle." << std::endl;
+  }
+  if(!lisp.get("burning", burning))
+  {
+    log_warning << "Couldn't get \"burning\" property for candle." << std::endl;
+  }
+  if(!lisp.get("flicker", flicker))
+  {
+    log_warning << "Couldn't get \"flicker\" property for candle." << std::endl;
+  }
   //get color from lisp
   std::vector<float> vColor;
-  lisp.get("color", vColor);
+  if(lisp.get("color", vColor))
+  {
+    log_warning << "Couldn't get \"color\" property for candle." << std::endl;
+  }
+
   //change the light color if defined
   if (vColor.size() >= 3) {
     lightcolor = Color(vColor);
@@ -107,7 +121,11 @@ Candle::puff_smoke()
   Vector ppos = bbox.get_middle();
   Vector pspeed = Vector(0, -150);
   Vector paccel = Vector(0,0);
-  Sector::current()->add_object(new SpriteParticle("images/objects/particles/smoke.sprite", "default", ppos, ANCHOR_MIDDLE, pspeed, paccel, LAYER_BACKGROUNDTILES+2));
+  Sector::current()->add_object(std::make_shared<SpriteParticle>("images/objects/particles/smoke.sprite",
+                                                                 "default",
+                                                                 ppos, ANCHOR_MIDDLE,
+                                                                 pspeed, paccel,
+                                                                 LAYER_BACKGROUNDTILES+2));
 }
 
 bool