Remember price quotes that have been seen for types of item

These are displayed in discoveries, and a new 'price_quotes' option
allows them to be displayed for un-IDed objects in other contexts
too (the idea is that you turn on the option while identifying
objects and off for general play).

Invalidates existing save files.
This commit is contained in:
Alex Smith
2026-03-18 21:08:22 +00:00
parent 9877e52025
commit 4fae45220e
14 changed files with 124 additions and 12 deletions

View File

@@ -2860,6 +2860,8 @@ extern void bclose(int);
/* setpaid() has a conditional code block near the end of the
function, where arg1 is tested for NULL, preventing NONNULLARG1 */
extern void setpaid(struct monst *) NO_NNARGS;
extern void record_price_quote(int, unsigned long, boolean);
extern void append_price_quote(char *, char **, int) NONNULLARG12;
extern long money2mon(struct monst *, long) NONNULLARG1;
extern void money2u(struct monst *, long) NONNULLARG1;
extern void shkgone(struct monst *) NONNULLARG1;

View File

@@ -330,6 +330,7 @@ struct instance_flags {
boolean num_pad; /* use numbers for movement commands */
boolean perm_invent; /* display persistent inventory window */
boolean perm_invent_pending; /* need to try again */
boolean pricequotes; /* display price quotes on unIDd objects */
boolean renameallowed; /* can change hero name during role selection */
boolean renameinprogress; /* we are changing hero name */
boolean sounds; /* master on/off switch for using soundlib */

View File

@@ -104,6 +104,11 @@ struct objclass {
#define oc_level oc_oc2 /* books: spell level */
unsigned short oc_nutrition; /* food value */
unsigned long oc_sell_minseen;
unsigned long oc_sell_maxseen;
unsigned long oc_buy_minseen;
unsigned long oc_buy_maxseen;
};
struct class_sym {

View File

@@ -44,7 +44,7 @@
#define OBJECT(obj,bits,prp,sym,prob,dly,wt, \
cost,sdam,ldam,oc1,oc2,nut,color,sn) \
{ 0, 0, (char *) 0, bits, prp, sym, dly, color, prob, wt, \
cost, sdam, ldam, oc1, oc2, nut }
cost, sdam, ldam, oc1, oc2, nut, -1UL, 0, -1UL, 0 }
#define MARKER(tag,sn) /*empty*/
#elif defined(OBJECTS_ENUM)

View File

@@ -589,6 +589,9 @@ static int optfn_##a(int, int, boolean, char *, char *);
NHOPTB(preload_tiles, Advanced, 0, opt_out, set_in_config, /* MSDOS only */
On, Yes, No, No, NoAlias, &iflags.wc_preload_tiles, Term_False,
(char *)0)
NHOPTB(price_quotes, General, 0, opt_in, set_in_game,
Off, Yes, No, No, NoAlias, &iflags.pricequotes, Term_False,
"display prices you have seen for unidentified objects")
NHOPTB(pushweapon, Behavior, 0, opt_in, set_in_game,
Off, Yes, No, No, NoAlias, &flags.pushweapon, Term_False,
"previous weapon goes to secondary slot")

View File

@@ -17,7 +17,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
#define EDITLEVEL 132
#define EDITLEVEL 133
/*
* Development status possibilities.