+MrIceBlock::ungrab(MovingObject& , Direction dir_)
+{
+ if(dir_ == UP) {
+ set_state(ICESTATE_FLAT, true);
+ } else {
+ this->dir = dir_;
+ set_state(ICESTATE_KICKED);
+ }
+ set_colgroup_active(COLGROUP_MOVING);
+}
+
+bool
+MrIceBlock::is_portable() const
+{
+ return ice_state == ICESTATE_FLAT;
+}
+
+SmartBlock::SmartBlock(const Reader& reader) :
+ MrIceBlock(reader)