@@ -155,6 +155,23 @@ static void PoolCleanBlock(uint start_it
}
/**
* Template providing a predicate to allow STL containers of
* pointers to pool items to be sorted by index.
*/
template <typename T>
struct PoolItemIndexLess {
* The actual comparator.
* @param lhs the left hand side of the comparison.
* @param rhs the right hand side of the comparison.
* @return true if lhs' index is less than rhs' index.
bool operator()(const T *lhs, const T *rhs) const
{
return lhs->index < rhs->index;
};
* Generalization for all pool items that are saved in the savegame.
@@ -7,6 +7,7 @@
#include "station_type.h"
#include "sprite.h"
#include "oldpool.h"
#include "rail_type.h"
#include "road_type.h"
#include "tile_type.h"
@@ -17,7 +18,7 @@
void ModifyStationRatingAround(TileIndex tile, Owner owner, int amount, uint radius);
/** A set of stations (\c const \c Station* ) */
typedef std::set<Station*> StationSet;
typedef std::set<Station*, PoolItemIndexLess<Station> > StationSet;
StationSet FindStationsAroundIndustryTile(TileIndex tile, int w, int h);
Status change: