/* Do not remove the headers from this file! see /USAGE for more info. */
void simple_action(string, object);
private object weapon;
varargs void unwield(string unused)
{
if(weapon)
weapon->mark_wielded_by(0);
weapon = 0;
}
varargs void wield(object ob, string unused)
{
if(weapon)
unwield();
weapon = ob;
weapon->mark_wielded_by(this_object());
}
object query_weapon()
{
return weapon ? weapon : this_object();
}
int do_wield(object ob)
{
if(!(ob->valid_wield()))
return 0;
simple_action(ob->query_wield_message(), ob);
wield(ob);
return 1;
}
int do_unwield()
{
if(!weapon || weapon == this_object())
return 0;
if(!(weapon->valid_unwield()))
return 0;
simple_action(weapon->query_unwield_message(), weapon);
unwield();
return 1;
}
string get_wield_attributes()
{
return " (wielded)";
}