fix bz623 - 'D' when not carrying anything

With menustyle set to "full" or "partial", using 'D' when not
carrying anything gave no feedback.  (Modes "traditional" and
"combination" give "you have nothing to drop" via ggetobj().)

Also, there's no need to reset in-progress armor removal, lock
picking, or trap setting if you don't actually drop anything.
The inventory they're set to operate on or with stays intact.
This commit is contained in:
PatR
2016-09-02 02:38:10 -07:00
parent 05ca204ae4
commit ff817b55e1
3 changed files with 19 additions and 8 deletions

View File

@@ -336,6 +336,8 @@ if user supplied a specific monster name when asked to choose a monster class,
S_quadruped due to being preceded by "titanothere" in mons[])
change ing_suffix() to not double final 'w' when adding 'ing' ('t=' yielded
"You mime throwwing something.")
using 'D' to drop when not carrying anything finished (after doing nothing)
without giving any feedback for menustyles "full" and "partial"
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 do.c $NHDT-Date: 1464487100 2016/05/29 01:58:20 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.156 $ */
/* NetHack 3.6 do.c $NHDT-Date: 1472809073 2016/09/02 09:37:53 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.158 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -34,7 +34,8 @@ dodrop()
result = drop(getobj(&drop_types[i], "drop"));
if (*u.ushops)
sellobj_state(SELL_NORMAL);
reset_occupations();
if (result)
reset_occupations();
return result;
}
@@ -739,6 +740,10 @@ doddrop()
{
int result = 0;
if (!invent) {
You("have nothing to drop.");
return 0;
}
add_valid_menu_class(0); /* clear any classes already there */
if (*u.ushops)
sellobj_state(SELL_DELIBERATE);
@@ -747,7 +752,8 @@ doddrop()
result = menu_drop(result);
if (*u.ushops)
sellobj_state(SELL_NORMAL);
reset_occupations();
if (result)
reset_occupations();
return result;
}
@@ -785,6 +791,7 @@ int retry;
free((genericptr_t) pick_list);
} else if (flags.menu_style == MENU_COMBINATION) {
unsigned ggoresults = 0;
all_categories = FALSE;
/* Gather valid classes via traditional NetHack method */
i = ggetobj("drop", drop, 0, TRUE, &ggoresults);

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 invent.c $NHDT-Date: 1461967848 2016/04/29 22:10:48 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.208 $ */
/* NetHack 3.6 invent.c $NHDT-Date: 1472809075 2016/09/02 09:37:55 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.210 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1573,13 +1573,15 @@ unsigned *resultflags;
char extra_removeables[3 + 1]; /* uwep,uswapwep,uquiver */
char buf[BUFSZ], qbuf[QBUFSZ];
if (!invent) {
You("have nothing to %s.", word);
if (resultflags)
*resultflags = ALL_FINISHED;
return 0;
}
if (resultflags)
*resultflags = 0;
takeoff = ident = allflag = m_seen = FALSE;
if (!invent) {
You("have nothing to %s.", word);
return 0;
}
add_valid_menu_class(0); /* reset */
if (taking_off(word)) {
takeoff = TRUE;