mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 22:28:56 +00:00
(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:
parent
9a4465f9c0
commit
f5c33e5073
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user