Skip to content

Commit

Permalink
polyself weapon drop feedback
Browse files Browse the repository at this point in the history
     Don't say "you must drop your weapon" when it doesn't actually get
dropped.  And make "weapon" be more specific, comparable to the handing
for slippery fingers.
  • Loading branch information
nethack.rankin committed Feb 18, 2007
1 parent 12cb6f5 commit 1e7ace5
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
23 changes: 19 additions & 4 deletions src/polyself.c
Original file line number Diff line number Diff line change
Expand Up @@ -722,23 +722,38 @@ drop_weapon(alone)
int alone;
{
struct obj *otmp;
const char *what, *which, *whichtoo;
boolean candropwep, candropswapwep;

if (uwep) {
/* !alone check below is currently superfluous but in the
* future it might not be so if there are monsters which cannot
* wear gloves but can wield weapons
*/
if (!alone || cantwield(youmonst.data)) {
if (alone) You("find you must drop your weapon%s!",
u.twoweap ? "s" : "");
candropwep = canletgo(uwep, "");
candropswapwep = !u.twoweap || canletgo(uswapwep, "");
if (alone) {
what = (candropwep && candropswapwep) ? "drop" : "release";
which = is_sword(uwep) ? "sword" : weapon_descr(uwep);
if (u.twoweap) {
whichtoo = is_sword(uswapwep) ? "sword" :
weapon_descr(uswapwep);
if (strcmp(which, whichtoo)) which = "weapon";
}
if (uwep->quan != 1L || u.twoweap) which = makeplural(which);

You("find you must %s %s %s!", what,
the_your[!!strncmp(which, "corpse", 6)], which);
}
if (u.twoweap) {
otmp = uswapwep;
uswapwepgone();
if (canletgo(otmp, "")) dropx(otmp);
if (candropswapwep) dropx(otmp);
}
otmp = uwep;
uwepgone();
if (canletgo(otmp, "")) dropx(otmp);
if (candropwep) dropx(otmp);
update_inventory();
} else if (!could_twoweap(youmonst.data)) {
untwoweapon();
Expand Down
6 changes: 4 additions & 2 deletions src/weapon.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,8 @@ static NEARDATA const char kebabable[] = {
};

/* weapon's skill category name for use as generalized description of weapon */
const char *weapon_descr(obj)
const char *
weapon_descr(obj)
struct obj *obj;
{
int skill = weapon_type(obj);
Expand All @@ -112,7 +113,8 @@ struct obj *obj;
switch (skill) {
case P_NONE:
/* not a weapon: use item class name; override "food" for corpses */
descr = (obj->otyp == CORPSE) ? "corpse" :
descr = (obj->otyp == CORPSE || obj->otyp == TIN || obj->otyp == EGG) ?
OBJ_NAME(objects[obj->otyp]) :
def_oc_syms[(int)obj->oclass].name;
break;
case P_SLING:
Expand Down

0 comments on commit 1e7ace5

Please sign in to comment.