bool recall_result::test_available_for_recalling(const team &my_team, bool) { const std::vector<unit>::const_iterator rec = std::find_if(my_team.recall_list().begin(), my_team.recall_list().end(), boost::bind(&unit::matches_id, _1, unit_id_)); if (rec == my_team.recall_list().end()) { set_error(E_NOT_AVAILABLE_FOR_RECALLING); return false; } return true; }
unit_const_ptr recall_result::get_recall_unit(const team &my_team) { unit_const_ptr rec = my_team.recall_list().find_if_matches_id(unit_id_); if (!rec) { set_error(E_NOT_AVAILABLE_FOR_RECALLING); } return rec; }
carryover::carryover(const team& t, const int gold, const bool add) : add_ (add) , color_(t.color()) , current_player_(t.current_player()) , gold_(gold) , name_(t.name()) , previous_recruits_(t.recruits()) , recall_list_(t.recall_list()) , save_id_(t.save_id()) {}
carryover::carryover(const team& t, const int gold, const bool add) : add_ (add) , current_player_(t.current_player()) , gold_(gold) , previous_recruits_(t.recruits()) , recall_list_() , save_id_(t.save_id()) , variables_(t.variables()) { for(const unit_const_ptr & u : t.recall_list()) { recall_list_.emplace_back(); u->write(recall_list_.back()); } }
carryover::carryover(const team& t, const int gold, const bool add) : add_ (add) , color_(t.color()) , current_player_(t.current_player()) , gold_(gold) , name_(t.name()) , previous_recruits_(t.recruits()) , recall_list_() , save_id_(t.save_id()) { BOOST_FOREACH(const unit_const_ptr & u, t.recall_list()) { recall_list_.push_back(config()); u->write(recall_list_.back()); } }