static const float WALKSPEED = 100;
static const float JUMP_ON_SPEED_Y = -400;
static const float JUMP_OFF_SPEED_Y = -500;
+static const std::string LAND_ON_TOTEM_SOUND = "sounds/totem.ogg";
Totem::Totem(const lisp::Lisp& reader)
: BadGuy(reader, "images/creatures/totem/totem.sprite")
{
carrying = 0;
carried_by = 0;
+ sound_manager->preload( LAND_ON_TOTEM_SOUND );
}
Totem::Totem(const Totem& other)
: BadGuy(other), carrying(other.carrying), carried_by(other.carried_by)
{
+ sound_manager->preload( LAND_ON_TOTEM_SOUND );
}
Totem::~Totem()
BadGuy::active_update(elapsed_time);
if (!carried_by) {
- if (might_fall())
+ if (on_ground() && might_fall())
{
dir = (dir == LEFT ? RIGHT : LEFT);
activate();
void
Totem::collision_solid(const CollisionHit& hit)
{
+ update_on_ground_flag(hit);
+
// if we are being carried around, pass event to bottom of stack and ignore it
if (carried_by) {
carried_by->collision_solid(hit);
this->carried_by = target;
this->activate();
bbox.set_size(sprite->get_current_hitbox_width(), sprite->get_current_hitbox_height());
+
+ sound_manager->play( LAND_ON_TOTEM_SOUND , get_pos());
+
this->synchronize_with(target);
}