29 #ifndef __UNIT_CACHE_H__
30 #define __UNIT_CACHE_H__
53 typedef std::vector<CUnit *>::iterator
iterator;
65 const_iterator
end()
const {
return Units.end(); }
88 std::vector<CUnit *>::const_iterator ret = std::find_if(
Units.begin(),
Units.end(), pred);
90 return ret !=
Units.end() ? (*ret) : NULL;
101 template<
typename _T>
106 for (
size_t i = 0; i !=
size; ++i) {
120 template<
typename _T>
125 for (
size_t count = 0; count !=
size; ++count) {
126 if (functor(
Units[count]) ==
false) {
159 #ifndef SECURE_UNIT_REMOVING
161 if (size == 1 && unit ==
Units[0]) {
165 for (
unsigned int i = 0; i <
size; ++i) {
167 if (
Units[i] == unit) {
175 for (std::vector<CUnit *>::iterator i(
Units.begin()),
end(
Units.end()); i !=
end; ++i) {
192 for (std::vector<CUnit *>::iterator i(
Units.begin()),
end(
Units.end()); i !=
end; ++i) {
209 if (!binary_search(
Units.begin(),
Units.end(), unit)) {
210 Units.insert(std::lower_bound(
Units.begin(),
Units.end(), unit), unit);
223 Units.push_back(unit);
233 #endif // !__UNIT_CACHE_H__
iterator end()
Definition: unit_cache.h:66
CUnitCache()
Definition: unit_cache.h:57
bool Remove(CUnit *const unit)
Definition: unit_cache.h:157
const_iterator begin() const
Definition: unit_cache.h:63
std::vector< CUnit * > Units
Definition: unit_cache.h:227
CUnit * find(const _T &pred) const
Find the first unit in a tile cache for which a predicate is true.
Definition: unit_cache.h:86
Describes the world map.
Definition: map.h:149
The big unit structure.
Definition: unit.h:119
size_t size() const
Definition: unit_cache.h:59
const_iterator end() const
Definition: unit_cache.h:65
CUnit * operator[](const unsigned int index) const
Definition: unit_cache.h:68
#define Assert(cond)
Definition: stratagus.h:119
int for_each_if(const _T &functor)
Apply a function to every element of a cache.
Definition: unit_cache.h:121
std::vector< CUnit * >::iterator iterator
Definition: unit_cache.h:53
void for_each(const _T functor)
Apply a function to every element of a cache.
Definition: unit_cache.h:102
bool InsertS(CUnit *unit)
Definition: unit_cache.h:207
Definition: unit_cache.h:50
iterator begin()
Definition: unit_cache.h:64
CUnit * operator[](const unsigned int index)
Definition: unit_cache.h:73
void Insert(CUnit *unit)
Definition: unit_cache.h:221
void clear()
Definition: unit_cache.h:61
std::vector< CUnit * >::const_iterator const_iterator
Definition: unit_cache.h:54
void RemoveS(CUnit *const unit)
Definition: unit_cache.h:190
CUnit * Remove(const unsigned int index)
Definition: unit_cache.h:140