(svn r6267) Simplify the control flow in the rail tile loop by eliminating a bool flag and replacing it by a simple goto
authortron
Thu, 31 Aug 2006 11:42:16 +0000
changeset 4482 4532293483d6
parent 4481 aa3dd55ea06d
child 4483 939db99bddb9
(svn r6267) Simplify the control flow in the rail tile loop by eliminating a bool flag and replacing it by a simple goto
rail_cmd.c
--- a/rail_cmd.c	Thu Aug 31 11:25:00 2006 +0000
+++ b/rail_cmd.c	Thu Aug 31 11:42:16 2006 +0000
@@ -1758,31 +1758,23 @@
 {
 	RailGroundType old_ground = GetRailGroundType(tile);
 	RailGroundType new_ground = old_ground;
-	bool quick_return = false;
 
 	switch (_opt.landscape) {
 		case LT_HILLY:
 			if (GetTileZ(tile) > _opt.snow_line) {
 				new_ground = RAIL_GROUND_ICE_DESERT;
-				quick_return = true;
+				goto set_ground;
 			}
 			break;
 
 		case LT_DESERT:
 			if (GetTropicZone(tile) == TROPICZONE_DESERT) {
 				new_ground = RAIL_GROUND_ICE_DESERT;
-				quick_return = true;
+				goto set_ground;
 			}
 			break;
 	}
 
-	if (new_ground != old_ground) {
-		SetRailGroundType(tile, new_ground);
-		MarkTileDirtyByTile(tile);
-	}
-
-	if (quick_return) return;
-
 	if (!IsPlainRailTile(tile)) return;
 
 	new_ground = RAIL_GROUND_GRASS;
@@ -1866,6 +1858,7 @@
 		}
 	}
 
+set_ground:
 	if (old_ground != new_ground) {
 		SetRailGroundType(tile, new_ground);
 		MarkTileDirtyByTile(tile);