Add paranoid option for breaking a wand

Add OPTION=paranoid_confirm:wand to prevent accidental
wand breaking - suggested by scorchgeek
This commit is contained in:
Pasi Kallinen
2015-09-27 19:13:13 +03:00
parent 58b9391de8
commit d9bc2fb621
5 changed files with 13 additions and 2 deletions

View File

@@ -2271,6 +2271,8 @@ require "yes" rather than 'y' to confirm attacking a peaceful monster;
.PL pray
require 'y' to confirm an attempt to pray rather
than immediately praying; on by default;
.PL wand
require "yes" rather than 'y' to confirm breaking a wand;
.PL Remove
require selection from inventory for 'R' and 'T'
commands even when wearing just one applicable item.

View File

@@ -2728,6 +2728,9 @@ a peaceful monster;
\item[{\tt pray~~~}]
require `{\tt y}' to confirm an attempt to pray rather
than immediately praying; on by default;
\item[{\tt wand}]
require ``{\tt yes}'' rather than `{\tt y}' to confirm breaking
a wand;
\item[{\tt Remove~}] require selection from inventory for `{\tt R}' and `{\tt T}'
commands even when wearing just one applicable item.
\elist

View File

@@ -68,6 +68,7 @@ struct flag {
#define PARANOID_HIT 0x10
#define PARANOID_PRAY 0x20
#define PARANOID_REMOVE 0x40
#define PARANOID_BREAKWAND 0x80
int pickup_burden; /* maximum burden before prompt */
int pile_limit; /* controls feedback when walking over objects */
char inv_order[MAXOCLASSES];
@@ -378,6 +379,8 @@ extern NEARDATA struct instance_flags iflags;
/* remove: remove ('R') and takeoff ('T') commands prompt for an inventory
item even when only one accessory or piece of armor is currently worn */
#define ParanoidRemove ((flags.paranoia_bits & PARANOID_REMOVE) != 0)
/* breakwand: Applying a wand */
#define ParanoidBreakwand ((flags.paranoia_bits & PARANOID_BREAKWAND) != 0)
/* command parsing, mainly dealing with number_pad handling;
not saved and restored */

View File

@@ -3065,8 +3065,9 @@ struct obj *obj;
char confirm[QBUFSZ], buf[BUFSZ];
boolean is_fragile = (!strcmp(OBJ_DESCR(objects[obj->otyp]), "balsa"));
if (yn(safe_qbuf(confirm, "Are you really sure you want to break ", "?",
obj, yname, ysimple_name, "the wand")) == 'n')
if (!paranoid_query(ParanoidBreakwand,
safe_qbuf(confirm, "Are you really sure you want to break ",
"?", obj, yname, ysimple_name, "the wand")))
return 0;
if (nohands(youmonst.data)) {

View File

@@ -1186,6 +1186,8 @@ STATIC_VAR const struct paranoia_opts {
"y to pray (supersedes old \"prayconfirm\" option)" },
{ PARANOID_REMOVE, "Remove", 1, "Takeoff", 1,
"always pick from inventory for Remove and Takeoff" },
{ PARANOID_BREAKWAND, "wand", 1, "breakwand", 2,
"yes vs y to break a wand" },
/* for config file parsing; interactive menu skips these */
{ 0, "none", 4, 0, 0, 0 }, /* require full word match */
{ ~0, "all", 3, 0, 0, 0 }, /* ditto */