* 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
| 128 | * @return The random tree type |
| 129 | */ |
| 130 | static 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 |
no test coverage detected