//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void ResourceBuff::pushAll(Manifest mats) { double tot_qty = 0; for (int i = 0; i < mats.size(); i++) { tot_qty += mats.at(i)->quantity(); } if (tot_qty - space() > STORE_EPS && unlimited_ != true) { throw CycOverCapException("Material pushing breaks capacity limit."); } std::list<rsrc_ptr>::iterator iter; for (iter = mats_.begin(); iter != mats_.end(); iter++) { for (int i = 0; i < mats.size(); i++) { if ((*iter) == mats.at(i)) { throw CycDupResException("Duplicate material pushing attempted."); } } } for (int i = 0; i < mats.size(); i++) { mats_.push_back(mats.at(i)); } }