void name_unit(unit * u) { if (u_race(u)->generate_name) { const char *gen_name = u_race(u)->generate_name(u); if (gen_name) { unit_setname(u, gen_name); } else { unit_setname(u, racename(u->faction->locale, u, u_race(u))); } } else { char name[32]; const char * result; const struct locale * lang = u->faction ? u->faction->locale : default_locale; if (lang) { static const char * prefix[MAXLOCALES]; int i = locale_index(lang); if (!prefix[i]) { prefix[i] = LOC(lang, "unitdefault"); if (!prefix[i]) { prefix[i] = parameters[P_UNIT]; } } result = prefix[i]; } else { result = parameters[P_UNIT]; } strlcpy(name, result, sizeof(name)); strlcat(name, " ", sizeof(name)); strlcat(name, itoa36(u->no), sizeof(name)); unit_setname(u, name); } }
static void who(void) { int n, shown = 0; printf("<b>Active Players</b><br><br>\n"); printf("<table cellpadding=0 cellspacing=0 border=0>\n"); printf("<tr><td>Name </td><td>Race </td><td>Rank </td><td>Active</td></tr>\n"); printf("<tr><td colspan=4><hr></td></tr>"); for (n = 1; n<MAXCHARS && shown<50; n++) { if (ch[n].used!=USE_ACTIVE) { continue; } if (!(ch[n].flags & (CF_PLAYER))) { continue; } if (ch[n].flags & (CF_INVISIBLE | CF_NOLIST | CF_NOWHO)) { continue; } printf("<tr><td><a href=\"/cgi-bin/info.cgi?cn=%d\">%s</a> </td><td>%s </td><td>%s </td><td>%s</td></tr>\n", n, ch[n].name, racename(ch[n].kindred), rank(ch[n].points_tot), (ch[n].used==USE_ACTIVE ? "Yes" : "No")); shown++; } if (shown==0) { printf("<tr><td colspan=4>No players active</td></tr>\n"); } printf("</table><br>\n"); }
static void top(void) { int n, m; int b[25], nr[25]; for (m = 0; m<25; m++) { b[m] = -1; nr[m] = -1; } printf("<b>Top Characters</b><br><br>\n"); for (n = 1; n<MAXCHARS; n++) { if (ch[n].used==USE_EMPTY) { continue; } if (!(ch[n].flags & (CF_PLAYER))) { continue; } if (ch[n].flags & (CF_GOD | CF_NOLIST)) { continue; } for (m = 0; m<25; m++) { if (ch[n].points_tot>b[m]) { if (m<24) { memmove(&b[m + 1], &b[m], (24 - m) * sizeof(int)); memmove(&nr[m + 1], &nr[m], (24 - m) * sizeof(int)); } b[m] = ch[n].points_tot; nr[m] = n; break; } } } printf("<table cellpadding=0 cellspacing=0 border=0>\n"); printf("<tr><td>Name </td><td>Race </td><td>Rank </td><td>Active</td></tr>\n"); printf("<tr><td colspan=4><hr></td></tr>"); for (m = 0; m<25; m++) { if (nr[m]==-1) { continue; } printf("<tr><td><a href=\"/cgi-bin/info.cgi?cn=%d\">%s</a> </td><td>%s </td><td>%s </td><td>%s</td></tr>\n", nr[m], ch[nr[m]].name, racename(ch[nr[m]].kindred), rank(ch[nr[m]].points_tot), (ch[nr[m]].used==USE_ACTIVE && !(ch[nr[m]].flags & CF_INVISIBLE) ? "Yes" : "No")); } printf("</table><br>\n"); }
static void staff(void) { int n, shown = 0; printf("<b>Ye Staff</b><br><br>\n"); printf("<table cellpadding=0 cellspacing=0 border=0>\n"); printf("<tr><td>Name </td><td>Race </td><td>Rank </td><td>Active</td></tr>\n"); printf("<tr><td colspan=4><hr></td></tr>"); for (n = 1; n<MAXCHARS && shown<50; n++) { if (ch[n].used==USE_EMPTY) { continue; } if (!(ch[n].flags & (CF_PLAYER))) { continue; } if (ch[n].flags & CF_GOD) { continue; } if (!(ch[n].flags & CF_STAFF)) { continue; } printf("<tr><td><a href=\"/cgi-bin/info.cgi?cn=%d\">%s</a> </td><td>%s </td><td>%s </td><td>%s</td></tr>\n", n, ch[n].name, racename(ch[n].kindred), rank(ch[n].points_tot), (ch[n].used==USE_ACTIVE && !(ch[n].flags & CF_INVISIBLE) ? "Yes" : "No")); shown++; } if (shown==0) { printf("<tr><td colspan=4>No staffers yet.</td></tr>\n"); } printf("</table><br>\n"); }
static void xtop(int srank) { int n, m; int b[25], nr[25]; int ppm[MAXCHARS]; for (m = 1; m<MAXCHARS; m++) { ppm[m] = (ch[m].points_tot + 1) / ((ch[m].total_online_time / TICKS / 60) + 1); } for (m = 0; m<25; m++) { b[m] = -1; nr[m] = -1; } printf("<b>Top Characters</b><br><br>\n"); for (n = 1; n<MAXCHARS; n++) { if (ch[n].used==USE_EMPTY) { continue; } if (!(ch[n].flags & (CF_PLAYER))) { continue; } if (ch[n].flags & (CF_GOD | CF_NOLIST)) { continue; } if (srank && points2rank(ch[n].points_tot)!=srank) { continue; } for (m = 0; m<25; m++) { if (ppm[n]>b[m]) { if (m<24) { memmove(&b[m + 1], &b[m], (24 - m) * sizeof(int)); memmove(&nr[m + 1], &nr[m], (24 - m) * sizeof(int)); } b[m] = ppm[n]; nr[m] = n; break; } } } printf("<table cellpadding=0 cellspacing=0 border=0>\n"); printf("<tr><td>Name </td><td>Race </td><td>Rank </td><td>Active </td><td>PPM</td></tr>\n"); printf("<tr><td colspan=5><hr></td></tr>"); for (m = 0; m<25; m++) { if (nr[m]==-1) { continue; } printf("<tr><td><a href=\"/cgi-bin/info.cgi?cn=%d\">%s</a> </td><td>%s </td><td>%s </td><td>%s </td><td>%d</td></tr>\n", nr[m], ch[nr[m]].name, racename(ch[nr[m]].kindred), rank(ch[nr[m]].points_tot), (ch[nr[m]].used==USE_ACTIVE && !(ch[nr[m]].flags & CF_INVISIBLE) ? "Yes" : "No"), ppm[nr[m]]); } printf("</table><br>\n"); }