//------------------------------------------------------------------------------
        //
        //------------------------------------------------------------------------------
        public AStarPathFinder(short[,] map, IAStarSpeedConfig speedConfig, IAStarHCostEstimator estimator)
        {
            Debug.Assert(map != null && speedConfig != null && estimator != null);

            _map = map;
            _speedConfig = speedConfig;
            _hCostEstimator = estimator;

            _mapSize = new Vec2<short>((short)_map.GetLength(1), (short)_map.GetLength(0));

            _openList = new Dictionary<int, AStarNode>();
            _closeList = new Dictionary<int, AStarNode>();

            _endPos = new Vec2<short>();
            _roleSize = new Vec2<sbyte>();
        }
 //------------------------------------------------------------------------------
 //
 //------------------------------------------------------------------------------
 public AStarPathFinder(short[,] map, IAStarSpeedConfig speedConfig)
     : this(map, speedConfig, new AStarHCostHuffman())
 {
 }