mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r8707) -Codechange: Turn IsValidStation into a method of Station
This commit is contained in:
parent
6f68ac46b8
commit
8eab3964b4
|
@ -558,7 +558,7 @@ int32 CmdSendAircraftToHangar(TileIndex tile, uint32 flags, uint32 p1, uint32 p2
|
|||
StationID next_airport_index = v->u.air.targetairport;
|
||||
const Station *st = GetStation(next_airport_index);
|
||||
/* If the station is not a valid airport or if it has no hangars */
|
||||
if (!IsValidStation(st) || st->airport_tile == 0 || GetAirport(st->airport_type)->nof_depots == 0) {
|
||||
if (!st->IsValid() || st->airport_tile == 0 || GetAirport(st->airport_type)->nof_depots == 0) {
|
||||
StationID station;
|
||||
|
||||
// the aircraft has to search for a hangar on its own
|
||||
|
@ -695,7 +695,7 @@ static void CheckIfAircraftNeedsService(Vehicle *v)
|
|||
|
||||
st = GetStation(v->current_order.dest);
|
||||
// only goto depot if the target airport has terminals (eg. it is airport)
|
||||
if (IsValidStation(st) && st->airport_tile != 0 && GetAirport(st->airport_type)->terminals != NULL) {
|
||||
if (st->IsValid() && st->airport_tile != 0 && GetAirport(st->airport_type)->terminals != NULL) {
|
||||
// printf("targetairport = %d, st->index = %d\n", v->u.air.targetairport, st->index);
|
||||
// v->u.air.targetairport = st->index;
|
||||
v->current_order.type = OT_GOTO_DEPOT;
|
||||
|
|
|
@ -623,7 +623,7 @@ static bool LoadOldStation(LoadgameState *ls, int num)
|
|||
if (!LoadChunk(ls, st, station_chunk))
|
||||
return false;
|
||||
|
||||
if (IsValidStation(st)) {
|
||||
if (st->IsValid()) {
|
||||
if (st->train_tile) {
|
||||
/* Calculate the trainst_w and trainst_h */
|
||||
uint w = GB(_old_platforms, 3, 3);
|
||||
|
|
|
@ -162,7 +162,7 @@ bool Station::TileBelongsToRailStation(TileIndex tile) const
|
|||
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
|
||||
* TODO - This is just a temporary stage, this will be removed. */
|
||||
for (st = GetStation(0); st != NULL; st = (st->index + 1U < GetStationPoolSize()) ? GetStation(st->index + 1U) : NULL) {
|
||||
if (!IsValidStation(st)) {
|
||||
if (!st->IsValid()) {
|
||||
StationID index = st->index;
|
||||
|
||||
memset(st, 0, sizeof(Station));
|
||||
|
@ -187,6 +187,14 @@ bool Station::IsBuoy() const
|
|||
return (this->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 */
|
||||
|
|
|
@ -168,6 +168,7 @@ struct Station {
|
|||
void MarkTilesDirty() const;
|
||||
bool TileBelongsToRailStation(TileIndex tile) const;
|
||||
bool IsBuoy() const;
|
||||
bool IsValid() const;
|
||||
|
||||
protected:
|
||||
static Station *AllocateRaw(void);
|
||||
|
@ -237,20 +238,12 @@ static inline uint GetNumStations(void)
|
|||
return GetStationPoolSize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a station really exists.
|
||||
*/
|
||||
static inline bool IsValidStation(const Station *st)
|
||||
{
|
||||
return st->xy != 0;
|
||||
}
|
||||
|
||||
static inline bool IsValidStationID(StationID index)
|
||||
{
|
||||
return index < GetStationPoolSize() && IsValidStation(GetStation(index));
|
||||
return index < GetStationPoolSize() && GetStation(index)->IsValid();
|
||||
}
|
||||
|
||||
#define FOR_ALL_STATIONS_FROM(st, start) for (st = GetStation(start); st != NULL; st = (st->index + 1U < GetStationPoolSize()) ? GetStation(st->index + 1U) : NULL) if (IsValidStation(st))
|
||||
#define FOR_ALL_STATIONS_FROM(st, start) for (st = GetStation(start); st != NULL; st = (st->index + 1U < GetStationPoolSize()) ? GetStation(st->index + 1U) : NULL) if (st->IsValid())
|
||||
#define FOR_ALL_STATIONS(st) FOR_ALL_STATIONS_FROM(st, 0)
|
||||
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ static void StationPoolCleanBlock(uint start_item, uint end_item)
|
|||
|
||||
for (i = start_item; i <= end_item; i++) {
|
||||
Station *st = GetStation(i);
|
||||
if (IsValidStation(st)) st->~Station();
|
||||
if (st->IsValid()) st->~Station();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,7 +167,7 @@ static Station *AllocateStation(void)
|
|||
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
|
||||
* TODO - This is just a temporary stage, this will be removed. */
|
||||
for (st = GetStation(0); st != NULL; st = (st->index + 1U < GetStationPoolSize()) ? GetStation(st->index + 1U) : NULL) {
|
||||
if (!IsValidStation(st)) {
|
||||
if (!st->IsValid()) {
|
||||
StationID index = st->index;
|
||||
|
||||
memset(st, 0, sizeof(Station));
|
||||
|
|
|
@ -802,7 +802,7 @@ static char* FormatString(char* buff, const char* str, const int32* argv, uint c
|
|||
case SCC_STATION_NAME: { // {STATION}
|
||||
const Station* st = GetStation(GetInt32(&argv));
|
||||
|
||||
if (!IsValidStation(st)) { // station doesn't exist anymore
|
||||
if (!st->IsValid()) { // station doesn't exist anymore
|
||||
buff = GetStringWithArgs(buff, STR_UNKNOWN_DESTINATION, NULL, last);
|
||||
} else {
|
||||
int32 temp[2];
|
||||
|
|
Loading…
Reference in New Issue