Fix: bill_dummy_obj billed excessively for stacks

Add a way to request that unpaid_cost() produce the cost for a single
item, which is necessary for the price adjustment made in
bill_dummy_object.  Another option would be to simply divide by quan in
bill_dummy_object, but this might be more future-proof in case
unpaid_cost ever involves more than simple multiplication by quan
(e.g. the use of alternate units vs the base price, as are used for
globs).

Fixes #1236
This commit is contained in:
Michael Meyer
2024-04-27 11:22:48 -04:00
committed by PatR
parent 1f8db3a0f3
commit b662134eba
7 changed files with 24 additions and 11 deletions

View File

@@ -1624,7 +1624,7 @@ doname_base(
; /* don't attempt to obtain any shop pricing, even if 'with_price' */
} else if (is_unpaid(obj)) { /* in inventory or in container in invent */
char pricebuf[40];
long quotedprice = unpaid_cost(obj, TRUE);
long quotedprice = unpaid_cost(obj, COST_CONTENTS);
/* separately formatted suffix avoids need for ConcatF3() */
Sprintf(pricebuf, "%ld %s", quotedprice, currency(quotedprice));