bool MoveObj::canApply(const World &world) const { if (from != world.getFerryState()) { return false; } // search for object on side World::Map map = world.getObjects(); ObjList objects = map[from]; for (ObjList::const_iterator pos = objects.cbegin(); pos != objects.cend(); ++pos) { if (pos->getItemType() == objType) { return true; } } return false; }