Changeset - r7095:b0eeea62f548
[Not reviewed]
master
0 1 0
rubidium - 17 years ago 2007-06-27 19:00:14
rubidium@openttd.org
(svn r10362) -Codechange: make tunnel costs less exponential for (very) long tunnels.
1 file changed with 10 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/tunnelbridge_cmd.cpp
Show inline comments
 
@@ -499,6 +499,12 @@ CommandCost CmdBuildTunnel(TileIndex sta
 
	}
 

	
 
	end_tile = start_tile;
 

	
 
	/** Tile shift coeficient. Will decrease for very long tunnels to avoid exponential growth of price*/
 
	int tiles_coef = 3;
 
	/** Number of tiles from start of tunnel */
 
	int tiles = 0;
 

	
 
	for (;;) {
 
		end_tile += delta;
 
		end_tileh = GetTileSlope(end_tile, &end_z);
 
@@ -509,8 +515,11 @@ CommandCost CmdBuildTunnel(TileIndex sta
 
			return_cmd_error(STR_5003_ANOTHER_TUNNEL_IN_THE_WAY);
 
		}
 

	
 
		tiles++;
 
		if (tiles == 25 || tiles == 50 || tiles == 100 || tiles == 200 || tiles == 400 || tiles == 800) tiles_coef++;
 

	
 
		cost.AddCost(_price.build_tunnel);
 
		cost.AddCost(cost.GetCost() >> 3); // add a multiplier for longer tunnels
 
		cost.AddCost(cost.GetCost() >> tiles_coef); // add a multiplier for longer tunnels
 
	}
 

	
 
	/* Add the cost of the entrance */
0 comments (0 inline, 0 general)