*possible* fix for bugs #453 and #373
[supertux.git] / src / badguy / flame.cpp
index 85e470c..0de567d 100644 (file)
@@ -33,6 +33,8 @@ Flame::Flame(const lisp::Lisp& reader)
                       start_position.y + sin(angle) * radius));
   countMe = false;
   sound_manager->preload(SOUNDFILE);
+
+  set_colgroup_active(COLGROUP_TOUCHABLE);
 }
 
 void
@@ -40,10 +42,10 @@ Flame::write(lisp::Writer& writer)
 {
   writer.start_list("flame");
 
-  writer.write_float("x", start_position.x);
-  writer.write_float("y", start_position.y);
-  writer.write_float("radius", radius);
-  writer.write_float("speed", speed);
+  writer.write("x", start_position.x);
+  writer.write("y", start_position.y);
+  writer.write("radius", radius);
+  writer.write("speed", speed);
 
   writer.end_list("flame");
 }
@@ -51,7 +53,7 @@ Flame::write(lisp::Writer& writer)
 void
 Flame::active_update(float elapsed_time)
 {
-  angle = fmodf(angle + elapsed_time * speed, 2*M_PI);
+  angle = fmodf(angle + elapsed_time * speed, (float) (2*M_PI));
   Vector newpos(start_position.x + cos(angle) * radius,
                 start_position.y + sin(angle) * radius);
   movement = newpos - get_pos();
@@ -62,8 +64,6 @@ Flame::active_update(float elapsed_time)
 void
 Flame::activate()
 {
-  set_group(COLGROUP_TOUCHABLE);
-
   sound_source.reset(sound_manager->create_sound_source(SOUNDFILE));
   sound_source->set_position(get_pos());
   sound_source->set_looping(true);