1
0
Fork 0

(svn r11009) -Codechange: unvirtualise IsValid as that isn't needed with templates. This gives up to 10% performance increase in games with lots of vehicles.

release/0.6
rubidium 2007-08-30 20:40:33 +00:00
parent 9833639b00
commit 8a6cc3aa10
12 changed files with 23 additions and 47 deletions

View File

@ -43,7 +43,7 @@ struct CargoPacket : PoolItem<CargoPacket, CargoPacketID, &_CargoPacket_pool> {
* Is this a valid cargo packet ? * Is this a valid cargo packet ?
* @return true if and only it is valid * @return true if and only it is valid
*/ */
bool IsValid() const { return this->count != 0; } inline bool IsValid() const { return this->count != 0; }
/** /**
* Checks whether the cargo packet is from (exactly) the same source * Checks whether the cargo packet is from (exactly) the same source

View File

@ -23,7 +23,7 @@ struct Depot : PoolItem<Depot, DepotID, &_Depot_pool> {
Depot(TileIndex xy = 0) : xy(xy) {} Depot(TileIndex xy = 0) : xy(xy) {}
~Depot(); ~Depot();
bool IsValid() const { return this->xy != 0; } inline bool IsValid() const { return this->xy != 0; }
}; };
static inline bool IsValidDepotID(DepotID index) static inline bool IsValidDepotID(DepotID index)

View File

@ -284,7 +284,7 @@ struct EngineRenew : PoolItem<EngineRenew, EngineRenewID, &_EngineRenew_pool> {
EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {} EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {}
~EngineRenew() { this->from = INVALID_ENGINE; } ~EngineRenew() { this->from = INVALID_ENGINE; }
bool IsValid() const { return this->from != INVALID_ENGINE; } inline bool IsValid() const { return this->from != INVALID_ENGINE; }
}; };
#define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->IsValid()) #define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->IsValid())

View File

@ -123,7 +123,7 @@ struct Industry : PoolItem<Industry, IndustryID, &_Industry_pool> {
Industry(TileIndex tile = 0) : xy(tile) {} Industry(TileIndex tile = 0) : xy(tile) {}
~Industry(); ~Industry();
bool IsValid() const { return this->xy != 0; } inline bool IsValid() const { return this->xy != 0; }
}; };
struct IndustryTileTable { struct IndustryTileTable {

View File

@ -225,15 +225,6 @@ struct PoolItem {
{ {
} }
/**
* Is this a valid object or not?
* @return true if and only if it is valid
*/
virtual bool IsValid() const
{
return false;
}
private: private:
/** /**
* Allocate a pool item; possibly allocate a new block in the pool. * Allocate a pool item; possibly allocate a new block in the pool.

View File

@ -107,7 +107,11 @@ struct Order : PoolItem<Order, OrderID, &_Order_pool> {
Order() : refit_cargo(CT_NO_REFIT) {} Order() : refit_cargo(CT_NO_REFIT) {}
~Order() { this->type = OT_NOTHING; } ~Order() { this->type = OT_NOTHING; }
bool IsValid() const; /**
* Check if a Order really exists.
*/
inline bool IsValid() const { return this->type != OT_NOTHING; }
void Free(); void Free();
void FreeChain(); void FreeChain();
}; };
@ -140,14 +144,6 @@ static inline VehicleOrderID GetNumOrders()
return GetOrderPoolSize(); return GetOrderPoolSize();
} }
/**
* Check if a Order really exists.
*/
inline bool Order::IsValid() const
{
return this->type != OT_NOTHING;
}
inline void Order::Free() inline void Order::Free()
{ {
this->type = OT_NOTHING; this->type = OT_NOTHING;

View File

@ -26,7 +26,7 @@ struct Sign : PoolItem<Sign, SignID, &_Sign_pool> {
/** Destroy the sign */ /** Destroy the sign */
~Sign(); ~Sign();
bool IsValid() const { return this->str != STR_NULL; } inline bool IsValid() const { return this->str != STR_NULL; }
}; };
enum { enum {

View File

@ -237,14 +237,6 @@ bool Station::IsBuoy() const
return (had_vehicle_of_type & HVOT_BUOY) != 0; return (had_vehicle_of_type & HVOT_BUOY) != 0;
} }
/** Determines whether a station exists
* @todo replace 0 by INVALID_TILE
*/
bool Station::IsValid() const
{
return xy != 0;
}
/************************************************************************/ /************************************************************************/
/* StationRect implementation */ /* StationRect implementation */
@ -437,12 +429,6 @@ RoadStop::~RoadStop()
xy = 0; xy = 0;
} }
/** Determines whether a RoadStop is a valid (i.e. existing) one */
bool RoadStop::IsValid() const
{
return xy != 0;
}
/** Checks whether there is a free bay in this road stop */ /** Checks whether there is a free bay in this road stop */
bool RoadStop::HasFreeBay() const bool RoadStop::HasFreeBay() const
{ {

View File

@ -65,7 +65,11 @@ struct RoadStop : PoolItem<RoadStop, RoadStopID, &_RoadStop_pool> {
RoadStop(TileIndex tile = 0); RoadStop(TileIndex tile = 0);
virtual ~RoadStop(); virtual ~RoadStop();
bool IsValid() const; /**
* Determines whether a road stop exists
* @return true if and only is the road stop exists
*/
inline bool IsValid() const { return this->xy != 0; }
/* For accessing status */ /* For accessing status */
bool HasFreeBay() const; bool HasFreeBay() const;
@ -175,7 +179,12 @@ public:
uint GetPlatformLength(TileIndex tile, DiagDirection dir) const; uint GetPlatformLength(TileIndex tile, DiagDirection dir) const;
uint GetPlatformLength(TileIndex tile) const; uint GetPlatformLength(TileIndex tile) const;
bool IsBuoy() const; bool IsBuoy() const;
bool IsValid() const;
/**
* Determines whether a station exists
* @return true if and only is the station exists
*/
inline bool IsValid() const { return this->xy != 0; }
}; };
enum StationType { enum StationType {

View File

@ -159,7 +159,7 @@ struct Town : PoolItem<Town, TownID, &_Town_pool> {
/** Destroy the town */ /** Destroy the town */
~Town(); ~Town();
bool IsValid() const { return this->xy != 0; } inline bool IsValid() const { return this->xy != 0; }
}; };
struct HouseSpec { struct HouseSpec {

View File

@ -418,12 +418,6 @@ Waypoint::~Waypoint()
this->xy = 0; this->xy = 0;
} }
bool Waypoint::IsValid() const
{
return this->xy != 0;
}
/** /**
* Fix savegames which stored waypoints in their old format * Fix savegames which stored waypoints in their old format
*/ */

View File

@ -30,7 +30,7 @@ struct Waypoint : PoolItem<Waypoint, WaypointID, &_Waypoint_pool> {
Waypoint(TileIndex tile = 0); Waypoint(TileIndex tile = 0);
~Waypoint(); ~Waypoint();
bool IsValid() const; inline bool IsValid() const { return this->xy != 0; }
}; };
static inline bool IsValidWaypointID(WaypointID index) static inline bool IsValidWaypointID(WaypointID index)