(svn r1797) Clean up TileLoopClearHelper() a bit:
authortron
Fri, 04 Feb 2005 20:17:15 +0000
changeset 1293 be96e2bf9b3c
parent 1292 d26565fa1b45
child 1294 4cdf0e76c093
(svn r1797) Clean up TileLoopClearHelper() a bit:
- if cascades -> switch
- uint -> TileIndex
- (uint)-1 -> INVALID_TILE
- don't treat non-flags as flags
clear_cmd.c
--- a/clear_cmd.c	Fri Feb 04 19:53:53 2005 +0000
+++ b/clear_cmd.c	Fri Feb 04 20:17:15 2005 +0000
@@ -545,28 +545,48 @@
 	/* unused */
 }
 
-void TileLoopClearHelper(uint tile)
+void TileLoopClearHelper(TileIndex tile)
 {
-	byte img_1, img_2;
-	static byte img_by_map5[8] = { 0,0,0,2, 1,1,0,0, };
-	uint dirty = -1;
+	byte img_1;
+	byte img_2;
+	static byte img_by_map5[] = { 0, 0, 0, 2, 1, 1, 0, 0 };
+	TileIndex dirty = INVALID_TILE;
 
-	img_1 = 0;
-	if (IsTileType(tile, MP_CLEAR)) {
-		img_1 = img_by_map5[(_map5[tile] & 0x1C) >> 2];
-	} else if (IsTileType(tile, MP_TREES) && (_map2[tile] & 0x30) == 0x20) {
-		img_1 = 1;
+	switch (GetTileType(tile)) {
+		case MP_CLEAR:
+			img_1 = img_by_map5[(_map5[tile] & 0x1C) >> 2];
+			break;
+
+		case MP_TREES:
+			if ((_map2[tile] & 0x30) == 0x20)
+				img_1 = 1;
+			else
+				img_1 = 0;
+
+		default:
+			img_1 = 0;
+			break;
 	}
 
-	img_2 = 0;
-	if (IsTileType(TILE_ADDXY(tile, 1, 0), MP_CLEAR)) {
-		img_2 = img_by_map5[(_map5[TILE_ADDXY(tile, 1, 0)] & 0x1C) >> 2];
-	} else if (IsTileType(TILE_ADDXY(tile, 1, 0), MP_TREES) && (_map2[TILE_ADDXY(tile, 1, 0)] & 0x30) == 0x20) {
-		img_2 = 1;
+	switch (GetTileType(TILE_ADDXY(tile, 1, 0))) {
+		case MP_CLEAR:
+			img_2 = img_by_map5[(_map5[TILE_ADDXY(tile, 1, 0)] & 0x1C) >> 2];
+			break;
+
+		case MP_TREES:
+			if ((_map2[TILE_ADDXY(tile, 1, 0)] & 0x30) == 0x20)
+				img_2 = 1;
+			else
+				img_2 = 0;
+			break;
+
+		default:
+			img_2 = 0;
+			break;
 	}
 
-	if (!(_map3_hi[tile] & 0xE0)) {
-		if ( (img_1&2) != (img_2&2) ) {
+	if ((_map3_hi[tile] & 0xE0) == 0) {
+		if ((img_1 & 2) != (img_2 & 2)) {
 			_map3_hi[tile] |= 3 << 5;
 			dirty = tile;
 		}
@@ -577,15 +597,25 @@
 		}
 	}
 
-	img_2 = 0;
-	if (IsTileType(TILE_ADDXY(tile, 0, 1), MP_CLEAR)) {
-		img_2 = img_by_map5[(_map5[TILE_ADDXY(tile, 0, 1)] & 0x1C) >> 2];
-	} else if (IsTileType(TILE_ADDXY(tile, 0, 1), MP_TREES) && (_map2[TILE_ADDXY(tile, 0, 1)] & 0x30) == 0x20) {
-		img_2 = 1;
+	switch (GetTileType(TILE_ADDXY(tile, 0, 1))) {
+		case MP_CLEAR:
+			img_2 = img_by_map5[(_map5[TILE_ADDXY(tile, 1, 0)] & 0x1C) >> 2];
+			break;
+
+		case MP_TREES:
+			if ((_map2[TILE_ADDXY(tile, 0, 1)] & 0x30) == 0x20)
+				img_2 = 1;
+			else
+				img_2 = 0;
+			break;
+
+		default:
+			img_2 = 0;
+			break;
 	}
 
-	if (!(_map3_hi[tile] & 0x1C)) {
-		if ( (img_1&2) != (img_2&2) ) {
+	if ((_map3_hi[tile] & 0x1C) == 0) {
+		if ((img_1 & 2) != (img_2 & 2)) {
 			_map3_hi[tile] |= 3 << 2;
 			dirty = tile;
 		}
@@ -596,7 +626,7 @@
 		}
 	}
 
-	if (dirty != (uint) -1)
+	if (dirty != INVALID_TILE)
 		MarkTileDirtyByTile(dirty);
 }