X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=blobdiff_plain;f=yarrg%2Frssearch.c;h=245070e9ad6c34740f576707dee52dca95df03b1;hp=b05a27566bcbbb8d9038ba81951c897e4c0dc871;hb=9c3c0cfe4257a1365c8d82ff6f9b7908a4eb74a1;hpb=ed509bbddb84dee7121fdaf11d178b51e8e43186 diff --git a/yarrg/rssearch.c b/yarrg/rssearch.c index b05a275..245070e 100644 --- a/yarrg/rssearch.c +++ b/yarrg/rssearch.c @@ -1,4 +1,29 @@ -/**/ +/* + * Route searcher - recursive iteration over all routes + */ +/* + * This is part of the YARRG website, a tool for assisting + * players of Yohoho Puzzle Pirates. + * + * Copyright (C) 2009 Ian Jackson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + * Yohoho and Puzzle Pirates are probably trademarks of Three Rings and + * are used without permission. This program is not endorsed or + * sponsored by Three Rings. + */ #include "rscommon.h" @@ -111,11 +136,11 @@ static double process_route(int nports, int totaldist, } if (nports>=2) { - for (granui=0; granui buckets[granui]->prs[A].value[A] || - guess[P] > buckets[granui]->prs[P].value[P]) - goto not_bucketelim; - } + for (granui=0; granui buckets[granui]->prs[ap].value[ap] && + guess[ap] > highscores[granui][ap][0].value) + goto not_bucketelim; ctr_routes_bucketelim++; debugf(" ELIM %f %f\n", guess[A], guess[P]); return guess[A]; @@ -156,6 +181,7 @@ static double process_route(int nports, int totaldist, } else { int pos; ctr_newbests_granu[granui*AP+ap]++; + bucket->prs[ap].length= totaldist; memcpy(bucket->prs[ap].value, value, sizeof(value)); memcpy(bucket->prs[ap].ports, ports, sizeof(*ports) * nports); if (nports < MAX_ROUTELEN-1) bucket->prs[ap].ports[nports]= -1;