Mercurial > hg > openttd
changeset 14189:6b31c7a77ef6 draft
(svn r18738) -Fix (r18719): when a tree died while there was snow the amount of snow on the tile changed
author | yexo <yexo@openttd.org> |
---|---|
date | Tue, 05 Jan 2010 22:32:47 +0000 |
parents | 3567fc0ac6ee |
children | ca3d4f2616e4 |
files | src/clear_map.h src/tree_cmd.cpp |
diffstat | 2 files changed, 10 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/clear_map.h +++ b/src/clear_map.h @@ -310,14 +310,14 @@ * @param t the tile to make snowy * @pre GetClearGround(t) != CLEAR_SNOW */ -static inline void MakeSnow(TileIndex t) +static inline void MakeSnow(TileIndex t, uint density = 0) { assert(GetClearGround(t) != CLEAR_SNOW); SetBit(_m[t].m3, 4); if (GetClearGround(t) == CLEAR_FIELDS) { - SetClearGroundDensity(t, CLEAR_GRASS, 0); + SetClearGroundDensity(t, CLEAR_GRASS, density); } else { - SetClearDensity(t, 0); + SetClearDensity(t, density); } }
--- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -702,16 +702,19 @@ case TREE_GROUND_SHORE: MakeShore(tile); break; case TREE_GROUND_GRASS: MakeClear(tile, CLEAR_GRASS, GetTreeDensity(tile)); break; case TREE_GROUND_ROUGH: MakeClear(tile, CLEAR_ROUGH, 3); break; - case TREE_GROUND_ROUGH_SNOW: + case TREE_GROUND_ROUGH_SNOW: { + uint density = GetTreeDensity(tile); MakeClear(tile, CLEAR_ROUGH, 3); - MakeSnow(tile); + MakeSnow(tile, density); break; + } default: // snow or desert if (_settings_game.game_creation.landscape == LT_TROPIC) { MakeClear(tile, CLEAR_DESERT, GetTreeDensity(tile)); } else { - MakeClear(tile, CLEAR_GRASS, GetTreeDensity(tile)); - MakeSnow(tile); + uint density = GetTreeDensity(tile); + MakeClear(tile, CLEAR_GRASS, 3); + MakeSnow(tile, density); } break; }