mirror of https://github.com/OpenTTD/OpenTTD
(svn r25870) -Codechange: Move placement rules for transmitter to its own function
parent
8ede002a96
commit
0a481d5ea6
|
@ -643,6 +643,24 @@ static bool HasTransmitter(TileIndex tile, void *user)
|
||||||
return IsObjectTypeTile(tile, OBJECT_TRANSMITTER);
|
return IsObjectTypeTile(tile, OBJECT_TRANSMITTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Try to build a transmitter.
|
||||||
|
* @return True iff a transmitter was built.
|
||||||
|
*/
|
||||||
|
static bool TryBuildTransmitter()
|
||||||
|
{
|
||||||
|
TileIndex tile = RandomTile();
|
||||||
|
int h;
|
||||||
|
if (IsTileType(tile, MP_CLEAR) && IsTileFlat(tile, &h) && h >= 4 && !IsBridgeAbove(tile)) {
|
||||||
|
TileIndex t = tile;
|
||||||
|
if (CircularTileSearch(&t, 9, HasTransmitter, NULL)) return false;
|
||||||
|
|
||||||
|
BuildObject(OBJECT_TRANSMITTER, tile);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void GenerateObjects()
|
void GenerateObjects()
|
||||||
{
|
{
|
||||||
if (_settings_game.game_creation.landscape == LT_TOYLAND) return;
|
if (_settings_game.game_creation.landscape == LT_TOYLAND) return;
|
||||||
|
@ -670,18 +688,10 @@ void GenerateObjects()
|
||||||
SetGeneratingWorldProgress(GWP_OBJECT, radiotower_to_build + lighthouses_to_build);
|
SetGeneratingWorldProgress(GWP_OBJECT, radiotower_to_build + lighthouses_to_build);
|
||||||
|
|
||||||
for (uint i = ScaleByMapSize(1000); i != 0 && Object::CanAllocateItem(); i--) {
|
for (uint i = ScaleByMapSize(1000); i != 0 && Object::CanAllocateItem(); i--) {
|
||||||
TileIndex tile = RandomTile();
|
if (!TryBuildTransmitter()) continue;
|
||||||
|
|
||||||
int h;
|
|
||||||
if (IsTileType(tile, MP_CLEAR) && IsTileFlat(tile, &h) && h >= 4 && !IsBridgeAbove(tile)) {
|
|
||||||
TileIndex t = tile;
|
|
||||||
if (CircularTileSearch(&t, 9, HasTransmitter, NULL)) continue;
|
|
||||||
|
|
||||||
BuildObject(OBJECT_TRANSMITTER, tile);
|
|
||||||
IncreaseGeneratingWorldProgress(GWP_OBJECT);
|
IncreaseGeneratingWorldProgress(GWP_OBJECT);
|
||||||
if (--radiotower_to_build == 0) break;
|
if (--radiotower_to_build == 0) break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* add lighthouses */
|
/* add lighthouses */
|
||||||
uint maxx = MapMaxX();
|
uint maxx = MapMaxX();
|
||||||
|
|
Loading…
Reference in New Issue