1
0
Fork 0

Fix #7400: Water class for tree tiles was not converted for old saves preventing industry creation.

As the information is always available from the tree ground type, unconditionally
update the map array for tree tiles.
pull/7409/head
Peter Nelson 2019-03-24 00:12:31 +00:00 committed by PeterN
parent 317f69c152
commit 76e77aefad
2 changed files with 8 additions and 0 deletions

View File

@ -3111,6 +3111,13 @@ bool AfterLoadGame()
FOR_ALL_INDUSTRIES(ind) if (ind->neutral_station != NULL) ind->neutral_station->industry = ind;
}
{
/* Update water class for trees for all current savegame versions. */
for (TileIndex t = 0; t < map_size; t++) {
if (IsTileType(t, MP_TREES)) SetWaterClass(t, GetTreeGround(t) == TREE_GROUND_SHORE ? WATER_CLASS_SEA : WATER_CLASS_INVALID);
}
}
/* Compute station catchment areas. This is needed here in case UpdateStationAcceptance is called below. */
Station::RecomputeCatchmentForAll();

View File

@ -277,6 +277,7 @@ static inline void MakeTree(TileIndex t, TreeType type, uint count, uint growth,
{
SetTileType(t, MP_TREES);
SetTileOwner(t, OWNER_NONE);
SetWaterClass(t, ground == TREE_GROUND_SHORE ? WATER_CLASS_SEA : WATER_CLASS_INVALID);
_m[t].m2 = ground << 6 | density << 4 | 0;
_m[t].m3 = type;
_m[t].m4 = 0 << 5 | 0 << 2;