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; }
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; } }