/* * Sat Oct 3 18:33:15 1998 -- Scott Turner * * Select a random beast. This should be inversely weighted by the * combat prowess of the beast. * */ int random_beast(int sk) { int i, choice = 0; int sum = 0, val; loop_item(i) { if (item_attack(i) && item_defense(i) && item_wild(i) && (!sk || subkind(i) == sk) && !rp_item(i)->maintenance) { val = MAX_MM - MM(i) + 1; if (val < 0) val = 1; sum += val; if (rnd(1, sum) <= val) { choice = i; }; }; } next_item; assert(choice); return choice; };
char * plural_item_name(int item, int qty) { char *s; if (qty == 1) return display_name(item); s = rp_item(item) ? rp_item(item)->plural_name : ""; if (s == NULL || *s == '\0') { fprintf(stderr, "warning: plural name not set for " "item %s\n", box_code(item)); s = display_name(item); } return s; }
/* * Sat Oct 3 18:22:54 1998 -- Scott Turner * * Select a random soldier-type unit. * */ static int random_soldier() { int i, choice = 0; int sum = 0; loop_item(i) { if (item_attack(i) && item_defense(i) && man_item(i) && rp_item(i)->maintenance) { sum++; if (rnd(1, sum) == 1) { choice = i; }; }; } next_item; return choice; };