Removed code duplication.

This commit is contained in:
Guillaume Melquiond 2009-05-17 20:31:08 +00:00
parent f558add83d
commit b5717ee623
2 changed files with 6 additions and 33 deletions

View file

@ -68,19 +68,6 @@ unit_map::unit_iterator unit_map::find(const map_location &loc) {
return unit_iterator(iter, this);
}
unit_map::const_unit_iterator unit_map::find(const map_location &loc) const {
lmap::const_iterator loc_iter = lmap_.find(loc);
if (loc_iter == lmap_.end()) {
return const_unit_iterator(map_.end(), this);
}
umap::const_iterator iter = map_.find(loc_iter->second);
assert(is_valid(iter));
return const_unit_iterator(iter, this);
}
unit_map::unit_iterator unit_map::find(const size_t &id) {
umap::iterator iter = map_.find(id);
iter = is_valid(iter) ? iter : map_.end();
@ -88,13 +75,6 @@ unit_map::unit_iterator unit_map::find(const size_t &id) {
return unit_iterator(iter, this);
}
unit_map::const_unit_iterator unit_map::find(const size_t &id) const {
umap::const_iterator iter = map_.find(id);
iter = is_valid(iter) ? iter : map_.end();
return const_unit_iterator(iter, this);
}
unit_map::unit_iterator unit_map::begin() {
// This call just needs to go somewhere that is likely to be
// called when num_iters_ == 0. This seems as good a place as any.
@ -251,16 +231,6 @@ void unit_map::clean_invalid() {
LOG_NG << "unit_map::clean_invalid - removed " << num_cleaned << " invalid map entries.\n";
}
unit_map::const_unit_iterator unit_map::find_leader(int side) const
{
unit_map::const_iterator i = begin(), i_end = end();
for (; i != i_end; ++i) {
if (static_cast<int>(i->second.side()) == side && i->second.can_recruit())
return i;
}
return i_end;
}
unit_map::unit_iterator unit_map::find_leader(int side)
{
unit_map::iterator i = begin(), i_end = end();

View file

@ -283,11 +283,14 @@ public:
unit_iterator find(const map_location& loc) ;
unit_iterator find(const unit_id_type& id);
const_unit_iterator find(const map_location& loc) const;
const_unit_iterator find(const unit_id_type& id) const;
const_unit_iterator find(const map_location &loc) const
{ return const_cast<unit_map *>(this)->find(loc); }
const_unit_iterator find(const unit_id_type &id) const
{ return const_cast<unit_map *>(this)->find(id); }
const_unit_iterator find_leader(int side) const;
unit_iterator find_leader(int side);
const_unit_iterator find_leader(int side) const
{ return const_cast<unit_map *>(this)->find_leader(side); }
size_t count(const map_location& loc) const { return lmap_.count(loc); }