+
+ 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;
+ 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);
+ candle_light_1->set_blend(Blend(GL_SRC_ALPHA, GL_ONE));
+ candle_light_2->set_blend(Blend(GL_SRC_ALPHA, GL_ONE));
+ candle_light_1->set_color(lightcolor);
+ candle_light_2->set_color(lightcolor);
+ //the following allows the original candle appearance to be preserved
+ candle_light_1->set_action("white");
+ candle_light_2->set_action("white");
+ }