diff options
author | truelight <truelight@openttd.org> | 2004-12-30 10:29:28 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2004-12-30 10:29:28 +0000 |
commit | 4b38004a490127410b62edac1abcc55b34fdf1d6 (patch) | |
tree | 0f11f4c68ab4017777eeac6fcd26a9b9da7ae20c | |
parent | 546fcfa3ec6828dba8ebedac449a96284bfd7e06 (diff) | |
download | openttd-4b38004a490127410b62edac1abcc55b34fdf1d6.tar.xz |
(svn r1302) -Fix: [ 1091655 ] In some older maps somehow water is owned by
OWNER_NONE instead of OWNER_WATER.
-Fix: On InitializeLandscape the map was made MP_WATER, but OWNER_NONE.
When ConvertGroundTilesIntoWaterTiles() is not called, this gives big
problems (see above). Now the owner is set to OWNER_WATER by default.
-rw-r--r-- | landscape.c | 2 | ||||
-rw-r--r-- | ttd.c | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/landscape.c b/landscape.c index 63e3fdd87..022f49557 100644 --- a/landscape.c +++ b/landscape.c @@ -483,7 +483,7 @@ void InitializeLandscape() uint map_size = MapSize(); int i; - memset(_map_owner, OWNER_NONE, map_size); + memset(_map_owner, OWNER_WATER, map_size); memset(_map2, 0, map_size * sizeof(uint16)); memset(_map3_lo, 0, map_size); memset(_map3_hi, 0, map_size); @@ -1229,6 +1229,21 @@ bool AfterLoadGame(uint version) UpdateCurrencies(); } + /* In old version there seems to be a problem that water is owned by + OWNER_NONE, not OWNER_WATER.. I can't replicate it for the current + (0x402) version, so I just check when versions are older, and then + walk through the whole map.. */ + if (version <= 0x402) { + TileIndex tile = TILE_XY(0,0); + uint w = MapSizeX(); + uint h = MapSizeY(); + + BEGIN_TILE_LOOP(tile_cur, w, h, tile) + if (IS_TILETYPE(tile_cur, MP_WATER) && _map_owner[tile_cur] != OWNER_WATER) + _map_owner[tile_cur] = OWNER_WATER; + END_TILE_LOOP(tile_cur, w, h, tile) + } + // convert road side to my format. if (_opt.road_side) _opt.road_side = 1; |