/* formatting inventories for player, monster and corpse contents */
/* self true if inventory, else an examine. */
string query_living_contents(int self)
{
string s, fish, *strs;
object wpn, *arms, *carry, *conts, money, held, *tmp_conts;
int coins, i, col;
s = "";
strs = conts = tmp_conts = ({ });
tmp_conts = all_inventory(this_object());
for(i=0; i<sizeof(tmp_conts); i++)
if((fish = (string)tmp_conts[i]->short()) && (fish != ""))
conts += ({ tmp_conts[i] });
wpn = (object)this_object()->query_weapon();
held = (object)this_object()->query_held_ob();
arms = (object *)this_object()->query_armors();
money = present("Some Money For Me", this_object());
if(!arms) arms = ({ });
if(wpn) {
strs += ({ "Wielding: ", (string)wpn->short(0) + ".\n"});
}
if(held) {
strs += ({ "Holding : ", (string)held->short(0) + ".\n" });
}
if(sizeof(arms))
if(fish = query_multiple_short(arms))
strs += ({ "Wearing : ", fish + ".\n" });
carry = conts - arms - ({ wpn }) - ({ money }) - ({ held });
/*(object *)this_object()->query_labels();*/
if(sizeof(carry))
if(fish = (string)this_object()->query_contents(0, carry))
strs += ({ "Carrying: ", fish });
col = (int)this_player()->query_cols()-11;
for(i=0; i<sizeof(strs); i+=2) {
s += sprintf("%s%-=*s", strs[i], col, strs[i+1]);
}
if(self) {
if(money) fish = (string)money->short(0);
else fish = 0;
if(!sizeof(strs)) s = "You are empty handed.\n";
s += "Your purse contains " + (fish?fish:"only moths") + ".\n";
} else if(money) {
coins = (int)money->query_number_coins();
s += capitalize((string)this_object()->query_possessive()) + " purse is ";
switch(coins) {
case 0..10: s += "home to only moths!\n"; break;
case 11..100: s += "tinkling with coins.\n"; break;
case 101..300: s += "bulging with coins.\n"; break;
default: s += "fit to burst!\n";
}
}
return s;
}