Patchs by Matt McCutche to fix Treeboss related Bugs 469 and 504.
[supertux.git] / src / badguy / mole_rock.cpp
index 7bef50b..802cdd8 100644 (file)
 
 #include "mole_rock.hpp"
 
+#include "lisp/writer.hpp"
+#include "object_factory.hpp"
+#include "audio/sound_manager.hpp"
+#include "sprite/sprite.hpp"
+
 MoleRock::MoleRock(const lisp::Lisp& reader)
-       : BadGuy(reader, "images/creatures/mole/mole_rock.sprite", LAYER_TILES - 2), parent(0), initial_velocity(Vector(0, -400))
+        : BadGuy(reader, "images/creatures/mole/mole_rock.sprite", LAYER_TILES - 2), parent(0), initial_velocity(Vector(0, -400))
 {
-  physic.gravity_enabled = true;
+  physic.enable_gravity(true);
   countMe = false;
+  sound_manager->preload("sounds/fall.wav");
+  sound_manager->preload("sounds/stomp.wav");
 }
 
 MoleRock::MoleRock(const Vector& pos, const Vector& velocity, const BadGuy* parent = 0)
-       : BadGuy(pos, LEFT, "images/creatures/mole/mole_rock.sprite", LAYER_TILES - 2), parent(parent), initial_velocity(velocity)
+        : BadGuy(pos, LEFT, "images/creatures/mole/mole_rock.sprite", LAYER_TILES - 2), parent(parent), initial_velocity(velocity)
 {
-  physic.gravity_enabled = true;
+  physic.enable_gravity(true);
   countMe = false;
+  sound_manager->preload("sounds/fall.wav");
+  sound_manager->preload("sounds/stomp.wav");
 }
 
 MoleRock::MoleRock(const MoleRock& other)
-       : BadGuy(other), parent(other.parent), initial_velocity(Vector(0, -400))
+        : BadGuy(other), parent(other.parent), initial_velocity(Vector(0, -400))
 {
+  sound_manager->preload("sounds/fall.wav");
+  sound_manager->preload("sounds/stomp.wav");
 }
 
 MoleRock::~MoleRock()
@@ -59,16 +70,15 @@ void
 MoleRock::write(lisp::Writer& writer)
 {
   writer.start_list("mole_rock");
-  writer.write_float("x", start_position.x);
-  writer.write_float("y", start_position.y);
+  writer.write("x", start_position.x);
+  writer.write("y", start_position.y);
   writer.end_list("mole_rock");
 }
 
 void
-MoleRock::activate()
+MoleRock::initialize()
 {
-  physic.vx = initial_velocity.x;
-  physic.vy = initial_velocity.y;
+  physic.set_velocity(initial_velocity);
   sprite->set_action("default");
 }