Changeset - r11330:5d2958291198
[Not reviewed]
master
0 3 0
rubidium - 15 years ago 2009-03-12 14:21:18
rubidium@openttd.org
(svn r15685) -Fix [FS#2720]: do not crash when someone substitutes the "map generation" sprites with garbage.
3 files changed with 13 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/heightmap.cpp
Show inline comments
 
@@ -352,7 +352,7 @@ static void GrayscaleToMapHeights(uint i
 
 * This function takes care of the fact that land in OpenTTD can never differ
 
 * more than 1 in height
 
 */
 
static void FixSlopes()
 
void FixSlopes()
 
{
 
	uint width, height;
 
	int row, col;
src/heightmap.h
Show inline comments
 
@@ -37,4 +37,10 @@ void LoadHeightmap(char *filename);
 
 */
 
void FlatEmptyWorld(byte tile_height);
 

	
 
/**
 
 * This function takes care of the fact that land in OpenTTD can never differ
 
 * more than 1 in height
 
 */
 
void FixSlopes();
 

	
 
#endif /* HEIGHTMAP_H */
src/landscape.cpp
Show inline comments
 
@@ -766,7 +766,7 @@ static void GenerateTerrain(int type, ui
 
				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, ui
 
				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, ui
 
				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, ui
 
				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, ui
 
			} while (--w != 0);
 
			break;
 
	}
 

	
 
	FixSlopes();
 
}
 

	
 

	
0 comments (0 inline, 0 general)