X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Frsmain.c;h=2a172c9d95999fe91ef0537807383bd5d7a92d05;hb=9326add47a682bbbe4ffc0b1408ea661994474dd;hp=eaa16c54834032a521e887e8c712a88488485745;hpb=e0e0711ed505eb9de89ac5a26848b30785e58816;p=ypp-sc-tools.db-test.git diff --git a/yarrg/rsmain.c b/yarrg/rsmain.c index eaa16c5..2a172c9 100644 --- a/yarrg/rsmain.c +++ b/yarrg/rsmain.c @@ -7,7 +7,7 @@ int o_quiet= 0; double max_mass=-1, max_volu=-1, max_capi=-1; double distance_loss_factor_per_league; -int max_dist= -1; +int max_dist=-1, min_trade_maxprofit=0; FILE *debug_file; FILE *output; @@ -21,7 +21,7 @@ FILE *output; #undef CTR #undef CTRA -static PotentialResult ****results[GRANUS]; +static Bucket ****results[GRANUS]; /* results[GRANUS][start_isle_ix][finalisle][midisle]-> */ static pid_t debugoutpid; @@ -30,6 +30,7 @@ int main(int argc, const char **argv) { const char *arg; int i, ap; int granui; + const char *database=0; #ifndef debug_flags debug_flags= ~( dbg_sql2 ); @@ -38,12 +39,18 @@ int main(int argc, const char **argv) { for (;;) { arg= *++argv; if (arg[0] != '-') break; + if (!strcmp(arg,"-d")) { + database= *++argv; + } else if (!strcmp(arg,"-g")) { + granus= atoi(*++argv); + assert(granus>=1 && granus<=GRANUS); #ifndef debug_flags - if (!strcmp(arg,"-DN")) { + } else if (!strcmp(arg,"-DN")) { debug_flags= 0; - } else + } else if (!strcmp(arg,"-D1")) { + debug_flags= ~(dbg_sql2|dbg_lp|dbg_value2); + } else { #endif - { abort(); } } @@ -75,8 +82,6 @@ int main(int argc, const char **argv) { debug_file= stderr; } - const char *database= *argv++; - sysassert( !setvbuf(debug,0,_IOLBF,0) ); max_mass= atof(*argv++); @@ -85,6 +90,8 @@ int main(int argc, const char **argv) { double loss_per_league= atof(*argv++); distance_loss_factor_per_league= 1.0 - loss_per_league; + min_trade_maxprofit= atoi(*argv++); + setup_sql(database); setup_value(); setup_search(); @@ -126,7 +133,7 @@ int main(int argc, const char **argv) { else final_isle= atoi(final_isle_spec); assert(final_isle); - PotentialResult ****buckets_base_io[GRANUS]; + Bucket ****buckets_base_io[GRANUS]; for (granui=0; granuivalue[A])); + tabdebugf("|%5d",(int)(result->prs[A].value[A])); tabdebugf(" "); - tabdebugf("%4d",(int)(result->value[P])); + tabdebugf("%4d",(int)(result->prs[P].value[P])); } } tabdebugf("\n"); @@ -171,9 +178,10 @@ int main(int argc, const char **argv) { granui, ap); for (pos=nhighscores[granui][ap]-1; pos>=0; pos--) { HighScoreEntry *hs= &highscores[granui][ap][pos]; - PotentialResult *pr= hs->pr; - if (!pr) continue; - const int *const ports= pr->ports[ap]; + Bucket *bucket= hs->bucket; + if (!bucket) continue; + OnePotentialResult *pr= &bucket->prs[ap]; + const int *const ports= pr->ports; int nports; for (nports=0; nports=0; nports++); int finisle= ports[nports-1]; @@ -182,7 +190,7 @@ int main(int argc, const char **argv) { int midarch= route2midarch(ports,nports); fprintf(output, " @%2d %c#%2d | start%3d mid%d:%3d f%d:%3d | %5d %5d %4d |", - pos, "ap"[ap], nhighscores[granui][ap] - 1 - pos, + pos, "ap"[ap], nhighscores[granui][ap] - pos, ports[0], midarch,midisle, finarch,finisle, (int)hs->value, (int)pr->value[A], (int)pr->value[P]); for (i=0; i