#include "audio/sound_manager.hpp"
#include "object/player.hpp"
#include "sprite/sprite.hpp"
+#include "sprite/sprite_manager.hpp"
#include "supertux/object_factory.hpp"
#include <math.h>
if(hit.top || hit.bottom) { // floor or roof
physic.set_velocity_y(0);
- return;
}
// hit left or right
sound_manager->play("sounds/iceblock_bump.wav", get_pos());
physic.set_velocity_x(-physic.get_velocity_x()*.975);
}
- sprite->set_action(dir == LEFT ? "flat-left" : "flat-right");
+ this->set_action(dir == LEFT ? "flat-left" : "flat-right", /* loops = */ -1);
if(fabsf(physic.get_velocity_x()) < walk_speed*1.5)
set_state(ICESTATE_NORMAL);
break;
switch(state) {
case ICESTATE_NORMAL:
+ this->set_action(dir == LEFT ? "left" : "right", /* loops = */ -1);
WalkingBadguy::initialize();
break;
case ICESTATE_FLAT:
physic.set_velocity_x(0);
physic.set_velocity_y(0);
}
- sprite->set_action(dir == LEFT ? "flat-left" : "flat-right");
+ this->set_action(dir == LEFT ? "flat-left" : "flat-right", /* loops = */ -1);
flat_timer.start(4);
break;
case ICESTATE_KICKED:
sound_manager->play("sounds/kick.wav", get_pos());
physic.set_velocity_x(dir == LEFT ? -KICKSPEED : KICKSPEED);
- sprite->set_action(dir == LEFT ? "flat-left" : "flat-right");
+ this->set_action(dir == LEFT ? "flat-left" : "flat-right", /* loops = */ -1);
// we should slide above 1 block holes now...
bbox.set_size(34, 31.8f);
break;
{
movement = pos - get_pos();
this->dir = dir;
- sprite->set_action(dir == LEFT ? "flat-left" : "flat-right");
+ this->set_action(dir == LEFT ? "flat-left" : "flat-right", /* loops = */ -1);
set_state(ICESTATE_GRABBED);
set_colgroup_active(COLGROUP_DISABLED);
}
return ice_state == ICESTATE_FLAT;
}
+SmartBlock::SmartBlock(const Reader& reader) :
+ MrIceBlock(reader)
+{
+ max_drop_height = 16;
+ sprite = sprite_manager->create("images/creatures/mr_iceblock/smart_block/smart_block.sprite");
+}
+
/* EOF */