Mercurial > hg > openttd
changeset 15751:a6dee2dc918f draft
(svn r20418) -Fix [FS#4017](r20125): During world generation the snow-mapbits are not yet available, so test the snowline variable directly (as before).
author | frosch <frosch@openttd.org> |
---|---|
date | Sun, 08 Aug 2010 21:34:19 +0000 |
parents | ecfa9b70abed |
children | e8add3288198 |
files | src/newgrf_commons.cpp |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/newgrf_commons.cpp +++ b/src/newgrf_commons.cpp @@ -22,6 +22,7 @@ #include "station_map.h" #include "tree_map.h" #include "tunnelbridge_map.h" +#include "genworld.h" #include "core/mem_func.hpp" /** @@ -304,26 +305,36 @@ bool has_snow; switch (GetTileType(tile)) { case MP_CLEAR: + /* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */ + if (_generating_world) goto genworld; has_snow = IsSnowTile(tile) && GetClearDensity(tile) >= 2; break; case MP_RAILWAY: { + /* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */ + if (_generating_world) goto genworld; // we do not care about foundations here RailGroundType ground = GetRailGroundType(tile); has_snow = (ground == RAIL_GROUND_ICE_DESERT || (upper_halftile && ground == RAIL_GROUND_HALF_SNOW)); break; } case MP_ROAD: + /* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */ + if (_generating_world) goto genworld; // we do not care about foundations here has_snow = IsOnSnow(tile); break; case MP_TREES: { + /* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */ + if (_generating_world) goto genworld; TreeGround ground = GetTreeGround(tile); has_snow = (ground == TREE_GROUND_SNOW_DESERT || ground == TREE_GROUND_ROUGH_SNOW) && GetTreeDensity(tile) >= 2; break; } case MP_TUNNELBRIDGE: + /* During map generation the snowstate may not be valid yet, as the tileloop may not have run yet. */ + if (_generating_world) goto genworld; // we do not care about foundations here has_snow = HasTunnelBridgeSnowOrDesert(tile); break; @@ -337,6 +348,7 @@ case MP_VOID: case MP_WATER: + genworld: has_snow = (GetTileZ(tile) > GetSnowLine()); break;