protected Boardable[] pathBetween(Boardable initB, Boardable destB) {
    if (GameSettings.pathFree) {
      final Pathing search = new Pathing(initB, destB, -1) ;
      if (verbose && I.talkAbout == mobile) search.verbose = true ;
      search.client = mobile ;
      search.doSearch() ;
      return search.fullPath(Boardable.class) ;
    }
    else {
      return mobile.world().pathingCache.getLocalPath(
        initB, destB, MAX_PATH_SCAN * 2,
        mobile, (verbose && I.talkAbout == mobile)
      ) ;
    }
  }