+void
+MrIceBlock::grab(MovingObject&, const Vector& pos, Direction dir)
+{
+ movement = pos - get_pos();
+ this->dir = dir;
+ sprite->set_action(dir == LEFT ? "flat-left" : "flat-right");
+ set_state(ICESTATE_GRABBED);
+ set_group(COLGROUP_DISABLED);
+}
+
+void
+MrIceBlock::ungrab(MovingObject& , Direction dir)
+{
+ this->dir = dir;
+ set_state(dir == UP ? ICESTATE_FLAT : ICESTATE_KICKED);
+ set_group(COLGROUP_MOVING);
+}
+
+bool
+MrIceBlock::is_portable() const
+{
+ return ice_state == ICESTATE_FLAT;