src/road_cmd.cpp
changeset 8088 92fca5b09665
parent 8083 ad22eade501f
child 8096 bc9bc6c35b9b
equal deleted inserted replaced
8087:25e5cc4a5344 8088:92fca5b09665
   131 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   131 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   132 			break;
   132 			break;
   133 
   133 
   134 		case MP_TUNNELBRIDGE:
   134 		case MP_TUNNELBRIDGE:
   135 			{
   135 			{
   136 				TileIndex endtile;
   136 				if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR;
   137 				if (IsTunnel(tile)) {
   137 				TileIndex endtile = IsTunnel(tile) ? GetOtherTunnelEnd(tile) : GetOtherBridgeEnd(tile);
   138 					if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR;
       
   139 					endtile = GetOtherTunnelEnd(tile);
       
   140 				} else {
       
   141 					if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR;
       
   142 					endtile = GetOtherBridgeEnd(tile);
       
   143 				}
       
   144 
       
   145 				if (GetVehicleTunnelBridge(tile, endtile) != NULL) return CMD_ERROR;
   138 				if (GetVehicleTunnelBridge(tile, endtile) != NULL) return CMD_ERROR;
   146 			} break;
   139 			} break;
   147 
   140 
   148 		default:
   141 		default:
   149 			return CMD_ERROR;
   142 			return CMD_ERROR;
   512 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   505 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   513 			break;
   506 			break;
   514 
   507 
   515 		case MP_TUNNELBRIDGE:
   508 		case MP_TUNNELBRIDGE:
   516 			{
   509 			{
   517 				TileIndex endtile;
   510 				if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR;
   518 				if (IsTunnel(tile)) {
       
   519 					if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR;
       
   520 					endtile = GetOtherTunnelEnd(tile);
       
   521 				} else {
       
   522 					if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR;
       
   523 					endtile = GetOtherBridgeEnd(tile);
       
   524 				}
       
   525 				if (HasBit(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
   511 				if (HasBit(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
       
   512 
       
   513 				TileIndex endtile = IsTunnel(tile) ? GetOtherTunnelEnd(tile) : GetOtherBridgeEnd(tile);
       
   514 
   526 				/* Don't allow "upgrading" the bridge/tunnel when vehicles are already driving on it */
   515 				/* Don't allow "upgrading" the bridge/tunnel when vehicles are already driving on it */
   527 				if (GetVehicleTunnelBridge(tile, endtile) != NULL) return CMD_ERROR;
   516 				if (GetVehicleTunnelBridge(tile, endtile) != NULL) return CMD_ERROR;
   528 			} break;
   517 			} break;
   529 
   518 
   530 		default:
   519 		default: