(svn r4758) - Newstations: add support for 'blocked' station tiles, which no train can pass.

This commit is contained in:
peter1138
2006-05-06 22:08:14 +00:00
parent 6b8b8395e4
commit c778716264
4 changed files with 26 additions and 1 deletions

View File

@@ -640,3 +640,22 @@ bool DrawStationTile(int x, int y, RailType railtype, Axis axis, StationClassID
return true;
}
/* Check if a rail station tile is traversable.
* XXX This could be cached (during build) in the map array to save on all the dereferencing */
bool IsStationTileBlocked(TileIndex tile)
{
const Station *st;
const StationSpec *statspec;
uint specindex;
if (!IsCustomStationSpecIndex(tile)) return false;
st = GetStationByTile(tile);
specindex = GetCustomStationSpecIndex(tile);
if (specindex >= st->num_specs) return false;
statspec = st->speclist[specindex].spec;
if (statspec == NULL) return false;
return HASBIT(statspec->blocked, GetStationGfx(tile));
}