示例#1
0
	bool Player::pick_up(Object * o) {
		// Did we pick up a backpack?
		if (o->type() == "ryggsäck") {
			hweight += dynamic_cast<Backpack*>(o)->pack_volume;
			hvolume += dynamic_cast<Backpack*>(o)->max_weight;
			backpack = true;
		}

		// If player can pick up item
		if ((backpack || objects.size() < 2) &&
			weight + o->weight() <= hold_weight() &&
			volume + o->volume() <= hold_volume())
		{
			// If item is picked up
			bool success = Human::pick_up(o);
			if (success) {
				weight += o->weight();
				volume += o->volume();
			}
			else {
			}
			return success;
		}
		std::cout << "Du har inte tillräckligt med plats för detta objekt.\n";
		std::cout << "Använd eller släng något objekt innan du kan ta detta.\n";
		return false;
	}
示例#2
0
文件: Container.cpp 项目: apals/cprog
 bool Container::add_item(Object * o) {
     int weight = 0;
     for(auto const & a : curr_items) {
         weight += a->weight();
     }
     
     if(weight < hold_weight()) {
         curr_items.push_back(o);
         return true;
     } else {
         std::cout << "This container can't hold any more items.." << std::endl;
         return false;
     }
 }