+ case STATE_KICKED:
+ if(hit.top || hit.bottom) {
+ physic.set_velocity_y(0);
+ }
+ if(hit.left || hit.right) {
+ sound_manager->play("sounds/iceblock_bump.wav", get_pos());
+
+#if 0
+ // TODO move this into BonusBlock code
+ // open bonusblocks, crash bricks
+ BonusBlock* bonusblock = dynamic_cast<BonusBlock*> (&object);
+ if(bonusblock) {
+ bonusblock->try_open();
+ }
+ Brick* brick = dynamic_cast<Brick*> (&object);
+ if(brick) {
+ brick->try_break();
+ }
+#endif
+ if( ( dir == LEFT && hit.left ) || ( dir == RIGHT && hit.right) ){
+ dir = (dir == LEFT) ? RIGHT : LEFT;
+ sprite->set_action(dir == LEFT ? "flat-left" : "flat-right");
+
+ physic.set_velocity_x(-physic.get_velocity_x()*0.75);
+ if (fabsf(physic.get_velocity_x()) < walk_speed) be_normal();
+ }