- fprintf(stderr,"\n");
- }
- }
-
- int pos;
-#define OUT(absperl) \
- fprintf(output,"\n================== " #absperl " ==================\n"); \
- for (pos=0; pos<nhighscores_##absperl; pos++) { \
- HighScoreEntry *hs= &highscores_##absperl[pos]; \
- PotentialResult *pr= hs->pr; \
- if (!pr) continue; \
- const int *const ports= pr->absperl##_ports; \
- int nports; \
- for (nports=0; nports<MAX_ROUTELEN && ports[nports]>=0; nports++); \
- int finisle= ports[nports-1]; int finarch= isle2arch(finisle); \
- int midarch= route2midarch(ports,nports); \
- fprintf(output, \
- " @%2d #%2d | start%3d mid%d f%d:%3d | %5d %5d %4d |", \
- pos, nhighscores_##absperl - 1 - pos, \
- ports[0], midarch, finarch,finisle, \
- (int)hs->value, (int)pr->absolute, (int)pr->perleague); \
- for (i=0; i<nports; i++) fprintf(output," %d",ports[i]); \
- fprintf(output,"\n"); \
- }
- OUT(absolute)
- OUT(perleague)
+ } /* i */
+
+ for (ap=0; ap<AP; ap++) {
+ int pos;
+ fprintf(output,"============== granui%d ap=%d ==============\n",
+ granui, ap);
+ for (pos=nhighscores[granui][ap]-1; pos>=0; pos--) {
+ HighScoreEntry *hs= &highscores[granui][ap][pos];
+ Bucket *bucket= hs->bucket;
+ if (!bucket) continue;
+ OnePotentialResult *pr= &bucket->prs[ap];
+ const int *const ports= pr->ports;
+ int nports;
+ for (nports=0; nports<MAX_ROUTELEN && ports[nports]>=0; nports++);
+ int finisle= ports[nports-1];
+ int finarch= isle2arch(finisle);
+ int midisle= ports[nports/2];
+ int midarch= route2midarch(ports,nports);
+ fprintf(output,
+ " @%2d %c#%2d | start%3d mid%d:%3d f%d:%3d"
+ " | %3dlg | %5d %5d %4d |",
+ pos, "ap"[ap], nhighscores[granui][ap] - pos,
+ ports[0], midarch,midisle, finarch,finisle, pr->length,
+ (int)hs->value, (int)pr->value[A], (int)pr->value[P]);
+ for (i=0; i<nports; i++) fprintf(output," %d",ports[i]);
+ fprintf(output,"\n");
+ } /* pos */
+ } /* ap */
+ } /* granui */