unit_const_ptr basic_unit_filter_impl::first_match_on_map() const { const unit_map & units = fc_.get_disp_context().units(); for(unit_map::const_iterator u = units.begin(); u != units.end(); u++) { if (matches(*u,u->get_location(),nullptr)) { return u.get_shared_ptr(); } } return unit_const_ptr(); }
unit_const_ptr find_backup_leader(const unit & leader) { assert(leader.can_recruit()); assert(resources::gameboard->map().is_keep(leader.get_location())); for (unit_map::const_iterator unit = resources::units->begin(); unit != resources::units->end(); unit++) { if (unit->can_recruit() && unit->id() != leader.id()) { if ( dynamic_cast<game_state*>(resources::filter_con)->can_recruit_on(*unit, leader.get_location()) ) return unit.get_shared_ptr(); } } return unit_const_ptr(); }