MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / GetRandomTreeType

Function GetRandomTreeType

src/tree_cmd.cpp:130–149  ·  view source on GitHub ↗

* Get a random TreeType for the given tile based on a given seed * * This function returns a random TreeType which can be placed on the given tile. * The seed for randomness must be less or equal 256, use #GB on the value of Random() * to get such a value. * * @param tile The tile to get a random TreeType from * @param seed The seed for randomness, must be less or equal 256 * @return The r

Source from the content-addressed store, hash-verified

128 * @return The random tree type
129 */
130static TreeType GetRandomTreeType(TileIndex tile, uint seed)
131{
132 switch (_settings_game.game_creation.landscape) {
133 case LandscapeType::Temperate:
134 return static_cast<TreeType>(seed * TREE_COUNT_TEMPERATE / 256 + TREE_TEMPERATE);
135
136 case LandscapeType::Arctic:
137 return static_cast<TreeType>(seed * TREE_COUNT_SUB_ARCTIC / 256 + TREE_SUB_ARCTIC);
138
139 case LandscapeType::Tropic:
140 switch (GetTropicZone(tile)) {
141 case TROPICZONE_NORMAL: return static_cast<TreeType>(seed * TREE_COUNT_SUB_TROPICAL / 256 + TREE_SUB_TROPICAL);
142 case TROPICZONE_DESERT: return static_cast<TreeType>((seed > 12) ? TREE_INVALID : TREE_CACTUS);
143 default: return static_cast<TreeType>(seed * TREE_COUNT_RAINFOREST / 256 + TREE_RAINFOREST);
144 }
145
146 default:
147 return static_cast<TreeType>(seed * TREE_COUNT_TOYLAND / 256 + TREE_TOYLAND);
148 }
149}
150
151/**
152 * Make a random tree tile of the given tile

Callers 3

PlaceTreeFunction · 0.85
CmdPlantTreeFunction · 0.85
PlantRandomTreeFunction · 0.85

Calls 1

GetTropicZoneFunction · 0.85

Tested by

no test coverage detected