X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=yarrg%2Frssearch.c;h=fd2e66a16072723ea762e0bd662e4a6af27c298f;hp=5c6cc669b183d224923136237528f9eb9261fdb8;hb=85fced6311966d8533ce8186f4f98ff8b6303619;hpb=706d75804688b94f51b806adc44f10269c35b0db diff --git a/yarrg/rssearch.c b/yarrg/rssearch.c index 5c6cc66..fd2e66a 100644 --- a/yarrg/rssearch.c +++ b/yarrg/rssearch.c @@ -15,6 +15,7 @@ static Neighbour **neighbours; /* neighbours[islandid]->islandid etc. */ static sqlite3_stmt *ss_neigh; static int ports[MAX_ROUTELEN]; +static int final_isle; static Neighbour *get_neighbours(int isle) { Neighbour **np= &neighbours[isle]; @@ -47,6 +48,8 @@ static double process_route(int nports, int totaldist, ctr_routes_considered++; + int wrong_final= final_isle && ports[nports-1] != final_isle; + debugf("========== ROUTE"); for (i=0; iabsolute && perleague <= strat->perleague) return absolute; @@ -167,8 +181,10 @@ static void recurse(int last_isle, } } -void search(int start_isle, PotentialResult ****strat_base_io) { +void search(int start_isle, int final_isle_spec, + PotentialResult ****strat_base_io) { strat_base= ONDEMAND(*strat_base_io, narches); + final_isle= final_isle_spec <= 0 ? 0 : final_isle_spec; recurse(start_isle,0,0,1e6); }