char * display_name(int n) { char *s; int i; if (!valid_box(n)) return ""; s = name(n); if (s && *s) return s; switch (kind(n)) { case T_player: return "Player"; case T_gate: return "Gate"; case T_post: return "Sign"; } if (i = noble_item(n)) return cap(plural_item_name(i, 1)); return cap(subkind_s[subkind(n)]); }
char * plural_item_box(int item, int qty) { char *s; if (qty == 1) return box_name(item); s = plural_item_name(item, qty); if (options.output_tags > 0) return sout("<tag type=box id=%d link=%d>%s~%s</tag type=box id=%d>", item, item, s, box_code(item), item); else return sout("%s~%s", s, box_code(item)); }
char * just_name_qty(int item, int qty) { return sout("%s~%s", nice_num(qty), plural_item_name(item, qty)); }
static char * liner_desc_char(int n) { char buf[LEN]; extern int show_combat_flag; char *s; int sk; strcpy(buf, box_name(n)); sk = subkind(n); if (sk == sub_ni) { int mk = noble_item(n); int num = has_item(n, mk) + 1; if (num == 1) strcat(buf, sout(", %s", plural_item_name(mk, num))); else strcat(buf, sout(", %s, number:~%s", plural_item_name(mk, num), comma_num(num))); } else if (sk) { if (sk == sub_temple) { if (is_temple(n)) { strcat(buf, sout(", Temple of %s", god_name(is_temple(n)))); } else { strcat(buf, sout(", undedicated temple")); }; } else if (sk == sub_guild) { strcat(buf, sout(", %s Guild", box_name(is_guild(n)))); } else { strcat(buf, sout(", %s", subkind_s[sk])); }; } strcat(buf, nation_s(n)); strcat(buf, deserted_s(n)); strcat(buf, rank_s(n)); strcat(buf, mage_s(n)); strcat(buf, priest_s(n)); #if 0 strcat(buf, wield_s(n)); #endif if (show_combat_flag) { if (char_behind(n)) strcat(buf, sout(", behind~%d%s", char_behind(n), combat_ally)); else strcat(buf, combat_ally); } else if (char_guard(n) && stack_leader(n) == n && subkind(n) != sub_garrison) strcat(buf, ", on guard"); #if 0 if (subkind(n) == 0) { /* only show lord for regular players */ int sp = lord(n); if (sp != indep_player && !cloak_lord(n)) strcat(buf, sout(", of~%s", box_code_less(sp))); } #endif if (show_display_string) { s = banner(n); if (s && *s) strcat(buf, sout(", \"%s\"", s)); } strcat(buf, with_inventory_string(n)); if (is_prisoner(n)) strcat(buf, ", prisoner"); return sout("%s", buf); }