diff options
author | rubidium <rubidium@openttd.org> | 2009-03-12 14:21:18 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-03-12 14:21:18 +0000 |
commit | 6ace408bfeab41bd72027485bfb583f0d5cd0bbe (patch) | |
tree | fae7fdfd90ad3dbe2c11215221506c3882556931 /src/landscape.cpp | |
parent | 21daa3fbc9775dc0b45db006c7adf39bdfd8254c (diff) | |
download | openttd-6ace408bfeab41bd72027485bfb583f0d5cd0bbe.tar.xz |
(svn r15685) -Fix [FS#2720]: do not crash when someone substitutes the "map generation" sprites with garbage.
Diffstat (limited to 'src/landscape.cpp')
-rw-r--r-- | src/landscape.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/landscape.cpp b/src/landscape.cpp index 15d70bbfd..f3b8ccd6f 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -766,7 +766,7 @@ static void GenerateTerrain(int type, uint flag) Tile *tile_cur = tile; for (uint w_cur = w; w_cur != 0; --w_cur) { - if (*p >= tile_cur->type_height) tile_cur->type_height = *p; + if (GB(*p, 0, 4) >= tile_cur->type_height) tile_cur->type_height = GB(*p, 0, 4); p++; tile_cur++; } @@ -779,7 +779,7 @@ static void GenerateTerrain(int type, uint flag) Tile *tile_cur = tile; for (uint h_cur = h; h_cur != 0; --h_cur) { - if (*p >= tile_cur->type_height) tile_cur->type_height = *p; + if (GB(*p, 0, 4) >= tile_cur->type_height) tile_cur->type_height = GB(*p, 0, 4); p++; tile_cur += TileDiffXY(0, 1); } @@ -793,7 +793,7 @@ static void GenerateTerrain(int type, uint flag) Tile *tile_cur = tile; for (uint w_cur = w; w_cur != 0; --w_cur) { - if (*p >= tile_cur->type_height) tile_cur->type_height = *p; + if (GB(*p, 0, 4) >= tile_cur->type_height) tile_cur->type_height = GB(*p, 0, 4); p++; tile_cur--; } @@ -807,7 +807,7 @@ static void GenerateTerrain(int type, uint flag) Tile *tile_cur = tile; for (uint h_cur = h; h_cur != 0; --h_cur) { - if (*p >= tile_cur->type_height) tile_cur->type_height = *p; + if (GB(*p, 0, 4) >= tile_cur->type_height) tile_cur->type_height = GB(*p, 0, 4); p++; tile_cur -= TileDiffXY(0, 1); } @@ -815,6 +815,8 @@ static void GenerateTerrain(int type, uint flag) } while (--w != 0); break; } + + FixSlopes(); } |