(svn r1545) Add TileHeight() which returns the height (not multiplied by 8)
authortron
Sun, 16 Jan 2005 14:50:01 +0000
changeset 1044 9b73df700a7c
parent 1043 123072ba6ced
child 1045 a8de7d7a83f1
(svn r1545) Add TileHeight() which returns the height (not multiplied by 8)
Replace some direct references to _map_type_and_height with TileHeight()/IsTileType()
clear_cmd.c
disaster_cmd.c
landscape.c
main_gui.c
map.h
smallmap_gui.c
--- a/clear_cmd.c	Sun Jan 16 14:42:53 2005 +0000
+++ b/clear_cmd.c	Sun Jan 16 14:50:01 2005 +0000
@@ -52,7 +52,7 @@
 			return mod->height;
 	}
 
-	return _map_type_and_height[tile] & 0xF;
+	return TileHeight(tile);
 }
 
 static void TerraformAddDirtyTile(TerraformerState *ts, TileIndex tile)
@@ -91,7 +91,7 @@
 	if ((r=TerraformAllowTileProcess(ts, tile)) <= 0)
 		return r;
 
-	if ((_map_type_and_height[tile] >> 4) == MP_RAILWAY) {
+	if (IsTileType(tile, MP_RAILWAY)) {
 		static const byte _railway_modes[4] = {8, 0x10, 4, 0x20};
 		static const byte _railway_dangslopes[4] = {0xd, 0xe, 7, 0xb};
 		static const byte _railway_dangslopes2[4] = {0x2, 0x1, 0x8, 0x4};
@@ -239,25 +239,25 @@
 
 	if (p1 & 1) {
 		if (!TerraformTileHeight(&ts, tile+TILE_XY(1,0),
-				(_map_type_and_height[tile+TILE_XY(1,0)]&0xF) + direction))
+				TileHeight(tile + TILE_XY(1, 0)) + direction))
 					return CMD_ERROR;
 	}
 
 	if (p1 & 2) {
 		if (!TerraformTileHeight(&ts, tile+TILE_XY(1,1),
-				(_map_type_and_height[tile+TILE_XY(1,1)]&0xF) + direction))
+				TileHeight(tile + TILE_XY(1, 1)) + direction))
 					return CMD_ERROR;
 	}
 
 	if (p1 & 4) {
 		if (!TerraformTileHeight(&ts, tile+TILE_XY(0,1),
-				(_map_type_and_height[tile+TILE_XY(0,1)]&0xF) + direction))
+				TileHeight(tile + TILE_XY(0, 1)) + direction))
 					return CMD_ERROR;
 	}
 
 	if (p1 & 8) {
 		if (!TerraformTileHeight(&ts, tile+TILE_XY(0,0),
-				(_map_type_and_height[tile+TILE_XY(0,0)]&0xF) + direction))
+				TileHeight(tile + TILE_XY(0, 0)) + direction))
 					return CMD_ERROR;
 	}
 
@@ -338,7 +338,7 @@
 	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 
 	// remember level height
-	h = _map_type_and_height[p1]&0xF;
+	h = TileHeight(p1);
 
 	ex >>= 4; ey >>= 4;
 
@@ -356,7 +356,7 @@
 	cost = 0;
 
 	BEGIN_TILE_LOOP(tile2, size_x, size_y, tile)
-		curh = _map_type_and_height[tile2]&0xF;
+		curh = TileHeight(tile2);
 		while (curh != h) {
 			ret = DoCommandByTile(tile2, 8, (curh > h)?0:1, flags & ~DC_EXEC, CMD_TERRAFORM_LAND);
 			if (ret == CMD_ERROR) break;
--- a/disaster_cmd.c	Sun Jan 16 14:42:53 2005 +0000
+++ b/disaster_cmd.c	Sun Jan 16 14:50:01 2005 +0000
@@ -20,7 +20,7 @@
 	if (!EnsureNoVehicle(tile))
 		return;
 
-	type = _map_type_and_height[tile] >> 4;
+	type = TileType(tile);
 
 	if (type == MP_RAILWAY) {
 		if (IS_HUMAN_PLAYER(_map_owner[tile]))
--- a/landscape.c	Sun Jan 16 14:42:53 2005 +0000
+++ b/landscape.c	Sun Jan 16 14:50:01 2005 +0000
@@ -53,12 +53,12 @@
 
 	assert(tile < MapSize() && TileX(tile) != MapMaxX() && TileY(tile) != MapMaxY());
 
-	min = a = _map_type_and_height[tile] & 0xF;
-	b = _map_type_and_height[tile+TILE_XY(1,0)] & 0xF;
+	min = a = TileHeight(tile);
+	b = TileHeight(tile + TILE_XY(1,0));
 	if (min >= b) min = b;
-	c = _map_type_and_height[tile+TILE_XY(0,1)] & 0xF;
+	c = TileHeight(tile + TILE_XY(0,1));
 	if (min >= c) min = c;
-	d = _map_type_and_height[tile+TILE_XY(1,1)] & 0xF;
+	d = TileHeight(tile + TILE_XY(1,1));
 	if (min >= d) min = d;
 
 	r = 0;
@@ -634,14 +634,13 @@
 {
 	uint tile;
 	const TileIndexDiffC *data;
-	byte mt;
 	int i;
 
 	for (tile = 0; tile != MapSize(); ++tile) {
 		for (data = _make_desert_or_rainforest_data;
 				data != endof(_make_desert_or_rainforest_data); ++data) {
-			mt = _map_type_and_height[TILE_MASK(tile + ToTileIndexDiff(*data))];
-			if ((mt & 0xf) >= 4 || (mt >> 4) == MP_WATER) break;
+			TileIndex t = tile + ToTileIndexDiff(*data);
+			if (TileHeight(t) >= 4 || IsTileType(t, MP_WATER)) break;
 		}
 		if (data == endof(_make_desert_or_rainforest_data))
 			SetMapExtraBits(tile, 1);
--- a/main_gui.c	Sun Jan 16 14:42:53 2005 +0000
+++ b/main_gui.c	Sun Jan 16 14:50:01 2005 +0000
@@ -1147,18 +1147,18 @@
 			/* Raise land */
 			h = 15;
 			BEGIN_TILE_LOOP(tile2, size, size, tile)
-				h = min(h, _map_type_and_height[tile2]&0xF);
+				h = min(h, TileHeight(tile2));
 			END_TILE_LOOP(tile2, size, size, tile)
 		} else {
 			/* Lower land */
 			h = 0;
 			BEGIN_TILE_LOOP(tile2, size, size, tile)
-				h = max(h, _map_type_and_height[tile2]&0xF);
+				h = max(h, TileHeight(tile2));
 			END_TILE_LOOP(tile2, size, size, tile)
 		}
 
 		BEGIN_TILE_LOOP(tile2, size, size, tile)
-			if ((uint)(_map_type_and_height[tile2]&0xF) == h) {
+			if (TileHeight(tile2) == h) {
 				DoCommandP(tile2, 8, (uint32)mode, NULL, CMD_TERRAFORM_LAND | CMD_AUTO);
 			}
 		END_TILE_LOOP(tile2, size, size, tile)
--- a/map.h	Sun Jan 16 14:42:53 2005 +0000
+++ b/map.h	Sun Jan 16 14:50:01 2005 +0000
@@ -73,10 +73,15 @@
 }
 
 
+static inline uint TileHeight(TileIndex tile)
+{
+	assert(tile < MapSize());
+	return _map_type_and_height[tile] & 0xf;
+}
+
 static inline uint TilePixelHeight(TileIndex tile)
 {
-	assert(tile < MapSize());
-	return (_map_type_and_height[tile] & 0xf) * 8;
+	return TileHeight(tile) * 8;
 }
 
 static inline int TileType(TileIndex tile)
--- a/smallmap_gui.c	Sun Jan 16 14:42:53 2005 +0000
+++ b/smallmap_gui.c	Sun Jan 16 14:50:01 2005 +0000
@@ -310,7 +310,7 @@
 		}
 	}
 
-	return (_map_height_bits[_map_type_and_height[tile] & 0xF] & _smallmap_contours_andor[t][1]) | _smallmap_contours_andor[t][0];
+	return (_map_height_bits[TileHeight(tile)] & _smallmap_contours_andor[t][1]) | _smallmap_contours_andor[t][0];
 }
 
 static void DrawSmallMapContours(byte *dst, uint xc, uint yc, int pitch, int reps, uint32 mask)