(svn r1413) Fixed a serious memory leak problem. The invisible tiles on the southern border now have the correct tile type (MP_VOID) again. Please note that older maps might still have incorrect border tiles, thus still causing overflows.

This commit is contained in:
dominik 2005-01-07 12:33:28 +00:00
parent 9a4465f9c0
commit f5c33e5073
2 changed files with 6 additions and 4 deletions

View File

@ -84,7 +84,7 @@ void FindLandscapeHeightByTile(TileInfo *ti, uint tile)
{
if (GET_TILE_X(tile) == MapMaxX() || GET_TILE_Y(tile) == MapMaxY()) {
ti->tileh = 0;
ti->type = MP_STRANGE;
ti->type = MP_VOID;
ti->tile = 0;
ti->map5 = 0;
ti->z = 0;
@ -108,7 +108,7 @@ void FindLandscapeHeight(TileInfo *ti, uint x, uint y)
if (x >= MapMaxX() * 16 - 1 || y >= MapMaxY() * 16 - 1) {
ti->tileh = 0;
ti->type = MP_STRANGE;
ti->type = MP_VOID;
ti->tile = 0;
ti->map5 = 0;
ti->z = 0;
@ -495,8 +495,10 @@ void InitializeLandscape()
memset(_map_extra_bits, 0, map_size / 4);
memset(_map_type_and_height, MP_CLEAR << 4, map_size);
// create void tiles on the border
for (i = 0; i != MapMaxY(); i++)
memset(_map_type_and_height + i * MapSizeX(), 0, MapSizeX() - 1);
_map_type_and_height[ i * MapSizeX() + MapMaxY() ] = MP_VOID << 4;
memset(_map_type_and_height + MapMaxY() * MapSizeX(), MP_VOID << 4, MapSizeX());
memset(_map5, 3, map_size);
}

2
ttd.h
View File

@ -91,7 +91,7 @@ enum MapTileTypes {
MP_TREES,
MP_STATION,
MP_WATER,
MP_STRANGE,
MP_VOID, // invisible tiles at the SW and SE border
MP_INDUSTRY,
MP_TUNNELBRIDGE,
MP_UNMOVABLE