fix #K4172 - selling all into container

When using #loot to put items into a shop-owned container on a shop's
floor, you are asked "Sell it? [ynaq] (n)" for each item, but the 'a'
and 'q' choices only worked as y or n for the current item.  By the
next one, the preferred answer had been reset to default and ynaq was
asked again.

Set a flag in use_container() to have in_container() set the sell vs
don't sell state for the first item but not for any others.  Reset
the state at the end of use_container() instead of after each item in
in_container().

This bug was present in 3.6.x, also in 3.4.3, and probably earlier.
This commit is contained in:
PatR
2024-07-03 23:28:05 -07:00
parent 7fa328fda3
commit 10c85d68bb
4 changed files with 23 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1445 $ $NHDT-Date: 1718303201 2024/06/13 18:26:41 $
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1450 $ $NHDT-Date: 1720074479 2024/07/04 06:27:59 $
General Fixes and Modified Features
-----------------------------------
@@ -1431,6 +1431,12 @@ buying shop items which include any unpaid ones inside containers would reveal
recent change to pay via menu made the problem become more visible;
shopping has been changed such that buying anything that is inside a
container requires that the whole container be bought as a unit
using #loot -> 'i'n to put multiple items into a shop-owned container would
ask whether to sell each item to the shop, and was prepared to accept
'a' to sell the current one plus all the rest beyond it, or to accept
'q' to not sell the current one or any beyond it, but the sell vs
don't-sell state was being reset for each item so 'a' and 'q' didn't
stick beyond the current one
Fixes to 3.7.0-x General Problems Exposed Via git Repository