(svn r19201) -Codechange: airport tiles now have 4 random bits per tile.

This commit is contained in:
yexo 2010-02-22 14:17:33 +00:00
parent 2b871fe953
commit cfc1571931
2 changed files with 9 additions and 1 deletions

View File

@ -207,9 +207,16 @@ static uint32 AirportTileGetVariable(const ResolverObject *object, byte variable
return UINT_MAX;
}
static uint32 AirportTileGetRandomBits(const ResolverObject *object)
{
const Station *st = object->u.airport.st;
const TileIndex tile = object->u.airport.tile;
return (st == NULL ? 0 : st->random_bits) | (tile == INVALID_TILE ? 0 : GetStationTileRandomBits(tile) << 16);
}
static void AirportTileResolver(ResolverObject *res, StationGfx gfx, TileIndex tile, Station *st)
{
res->GetRandomBits = NULL;
res->GetRandomBits = AirportTileGetRandomBits;
res->GetTriggers = NULL;
res->SetTriggers = NULL;
res->GetVariable = AirportTileGetVariable;

View File

@ -2076,6 +2076,7 @@ CommandCost CmdBuildAirport(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
do {
TileIndex cur_tile = tile + ToTileIndexDiff(it->ti);
MakeAirport(cur_tile, st->owner, st->index, it->gfx);
SetStationTileRandomBits(cur_tile, GB(Random(), 0, 4));
st->airport.Add(cur_tile);
if (AirportTileSpec::Get(GetTranslatedAirportTileID(it->gfx))->animation_info != 0xFFFF) AddAnimatedTile(cur_tile);