]> granicus.if.org Git - nethack/commitdiff
paranoid_confirmation:eating
authorPatR <rankin@nethack.org>
Thu, 28 Nov 2019 00:27:13 +0000 (16:27 -0800)
committerPatR <rankin@nethack.org>
Thu, 28 Nov 2019 00:27:13 +0000 (16:27 -0800)
Add 'eating' (synonym 'continue') to the list of things that can be
set via paranoid_confirmation to require "yes" instead of "y" when
the user is prompted about something, in this case "Continue eating?".

dat/opthelp was missing a few of the paranoid_confirmation choices.

dat/opthelp
doc/Guidebook.mn
doc/Guidebook.tex
include/flag.h
src/eat.c
src/options.c

index ee9092ede47a0877607ad9d4def835c01dfb09f1..0bcc8547e5cb674f77197945e81c3bfbac8d06dc 100644 (file)
@@ -99,7 +99,7 @@ altmeta        For unix and VMS, treat two character sequence
                "ESC c" as M-c (Meta+c, 8th bit set) when nethack  [FALSE]
                obtains a command from player's keyboard.
 
-Boolean option if USE_TILES was set at compile time (MSDOS protected mode only):
+Boolean option if USE_TILES was set at compile time (MSDOS protected mode):
 preload_tiles  control whether tiles get pre-loaded into RAM at   [TRUE]
                the start of the game.  Doing so enhances performance
                of the tile graphics, but uses more memory.
@@ -157,9 +157,13 @@ paranoid_confirmation  space separated list    [paranoid_confirmation:pray]
               die     -- yes vs y to confirm dying (for explore or debug mode)
               bones   -- yes vs y to confirm saving bones data in debug mode
               attack  -- yes vs y to confirm attacking a peaceful monster
+              wand-break  -- yes vs y to confirm breaking a wand
+              eating  -- yes vs y to confirm whether to continue eating
+              Were-change -- yes vs y to confirm changing form due to
+                      lycanthropy when hero has polymorph control;
               pray    -- y to confirm an attempt to pray; on by default
               Remove  -- always pick from inventory for 'R' and 'T' even when
-              wearing just one applicable item to remove or take off
+                      wearing just one applicable item to remove or take off
 pickup_burden when you pick up an item that exceeds this encumbrance    [S]
               level (Unencumbered, Burdened, streSsed, straiNed, overTaxed,
               or overLoaded), you will be asked if you want to continue.
index c039e3bba027e72ac9d30f80d1621da9446a39ee..5bf417b7a2f86a116b597e31e36708b3a416a13c 100644 (file)
@@ -1,4 +1,4 @@
-.\" $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.331 $ $NHDT-Date: 1573943499 2019/11/16 22:31:39 $
+.\" $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.333 $ $NHDT-Date: 1574900824 2019/11/28 00:27:04 $
 .\"
 .\" This is an excerpt from the 'roff' man page from the 'groff' package.
 .\" NetHack's Guidebook.mn currently does *not* adhere to these guidelines.
@@ -24,7 +24,7 @@
 .ds vr "NetHack 3.6
 .ds f0 "\*(vr
 .ds f1
-.ds f2 "November 17, 2019
+.ds f2 "November 27, 2019
 .
 .\" A note on some special characters:
 .\" \(lq = left double quote
@@ -693,6 +693,14 @@ Normally checks for edible item(s) on the floor, then if none are found
 or none are chosen, checks for edible item(s) in inventory.
 Precede \(oqe\(cq with the \(oqm\(cq prefix to bypass attempting to eat
 anything off the floor.
+.lp ""
+If you attempt to eat while already satiated, you might choke to death.
+If you risk it, you will be asked whether
+to \(lqcontinue eating?\(rq \fIif you survive the first bite\fP.
+You can set the
+.op paranoid_confirmation:eating
+option to require a response of \f(CRyes\fP instead of just \f(CRy\fP.
+.
 .\" Make sure Elbereth is not hyphenated below, the exact spelling matters
 .hw Elbereth
 .lp E
@@ -3307,6 +3315,8 @@ bones data when dying in debug mode;
 require \(lqyes\(rq rather than \(oqy\(cq to confirm attacking a peaceful monster;
 .PL wand-break
 require \(lqyes\(rq rather than \(oqy\(cq to confirm breaking a wand;
+.PL eating
+require \(lqyes\(rq rather than \(oqy\(cq to confirm whether to continue eating;
 .PL Were-change
 require \(lqyes\(rq rather than \(oqy\(cq to confirm changing form due to lycanthropy
 when hero has polymorph control;
index 4c0edfabc03673f11fb321a04c5ad096dacde0bc..8a37b106f986c066a0c9212166dceec7f94bee24 100644 (file)
@@ -45,7 +45,7 @@
 %.au
 \author{Original version - Eric S. Raymond\\
 (Edited and expanded for 3.6 by Mike Stephenson and others)}
-\date{November 17, 2019}
+\date{November 27, 2019}
 
 \maketitle
 
@@ -796,7 +796,14 @@ Eat food.\\
 Normally checks for edible item(s) on the floor, then if none are found
 or none are chosen, checks for edible item(s) in inventory.
 Precede `{\tt e}' with the `{\tt m}' prefix to bypass attempting to eat
-anything off the floor.
+anything off the floor.\\
+%.lp ""
+If you attempt to eat while already satiated, you might choke to death.
+If you risk it, you will be asked whether
+to ``continue eating?'' {\it if you survive the first bite\/}.
+You can set the
+{\it paranoid\verb+_+confirmation:eating\/}
+option to require a response of ``{\tt yes}'' instead of just `{\tt y}'.
 %.lp
 % Make sure Elbereth is not hyphenated below, the exact spelling matters.
 % (Only specified here to parallel Guidebook.mn; use of \tt font implicity
@@ -1333,7 +1340,7 @@ Autocompletes.
 Debug mode only.\\
 %.lp ""
 Asks for confirmation; default is `{\tt n}' (no); continue playing.
-To really panic, respond with `{\tt y}''.
+To really panic, respond with `{\tt y}'.
 You can set the
 {\it paranoid\verb+_+confirmation:quit\/}
 option to require a response of ``{\tt yes}'' instead.
@@ -3640,6 +3647,9 @@ a peaceful monster;
 \item[{\tt wand-break}]
 require ``{\tt yes}'' rather than `{\tt y}' to confirm breaking
 a wand;
+\item[{\tt eating}]
+require ``{\tt yes}'' rather than `{\tt y}' to confirm whether to
+continue eating;
 \item[{\tt Were-change}]
 require ``{\tt yes}'' rather than `{\tt y}' to confirm changing form
 due to lycanthropy
index 5370faab7a86ecbe917554aaddb7beb427b036e7..3b429e01fbfaefa97d72321474beda67f70d5864 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 flag.h  $NHDT-Date: 1569276988 2019/09/23 22:16:28 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.155 $ */
+/* NetHack 3.6 flag.h  $NHDT-Date: 1574900824 2019/11/28 00:27:04 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.160 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Michael Allison, 2006. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -106,6 +106,7 @@ struct flag {
 #define PARANOID_REMOVE     0x0040
 #define PARANOID_BREAKWAND  0x0080
 #define PARANOID_WERECHANGE 0x0100
+#define PARANOID_EATING     0x0200
     int pickup_burden; /* maximum burden before prompt */
     int pile_limit;    /* controls feedback when walking over objects */
     char inv_order[MAXOCLASSES];
@@ -520,6 +521,9 @@ enum runmode_types {
 /* werechange: accepting randomly timed werecreature change to transform
    from human to creature or vice versa while having polymorph control */
 #define ParanoidWerechange ((flags.paranoia_bits & PARANOID_WERECHANGE) != 0)
+/* continue eating: prompt given _after_first_bite_ when eating something
+   while satiated */
+#define ParanoidEating ((flags.paranoia_bits & PARANOID_EATING) != 0)
 
 /* command parsing, mainly dealing with number_pad handling;
    not saved and restored */
index 9620c372f89dabf66889a5f31f0e129061004fa7..5e2aa1a09c49f548dbc5efcccf63221426713d80 100644 (file)
--- a/src/eat.c
+++ b/src/eat.c
@@ -1,4 +1,4 @@
-/* NetHack 3.6 eat.c   $NHDT-Date: 1573346189 2019/11/10 00:36:29 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.205 $ */
+/* NetHack 3.6 eat.c   $NHDT-Date: 1574900825 2019/11/28 00:27:05 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.206 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Robert Patrick Rankin, 2012. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -2875,23 +2875,20 @@ int num;
         /* Have lesshungry() report when you're nearly full so all eating
          * warns when you're about to choke.
          */
-        if (u.uhunger >= 1500) {
-            if (!context.victual.eating
-                || (context.victual.eating && !context.victual.fullwarn)) {
-                pline("You're having a hard time getting all of it down.");
-                nomovemsg = "You're finally finished.";
-                if (!context.victual.eating) {
-                    multi = -2;
-                } else {
-                    context.victual.fullwarn = TRUE;
-                    if (context.victual.canchoke
-                        && context.victual.reqtime > 1) {
-                        /* a one-gulp food will not survive a stop */
-                        if (yn_function("Continue eating?", ynchars, 'n')
-                            != 'y') {
-                            reset_eat();
-                            nomovemsg = (char *) 0;
-                        }
+        if (u.uhunger >= 1500
+            && (!context.victual.eating
+                || (context.victual.eating && !context.victual.fullwarn))) {
+            pline("You're having a hard time getting all of it down.");
+            nomovemsg = "You're finally finished.";
+            if (!context.victual.eating) {
+                multi = -2;
+            } else {
+                context.victual.fullwarn = TRUE;
+                if (context.victual.canchoke && context.victual.reqtime > 1) {
+                    /* a one-gulp food will not survive a stop */
+                    if (!paranoid_query(ParanoidEating, "Continue eating?")) {
+                        reset_eat();
+                        nomovemsg = (char *) 0;
                     }
                 }
             }
index ecb0d773bd7fc5bdee9c8e87fff19e1e90ddfc69..77fd14b79aa3f44db0d12cc4c2d198e3e6155181 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 options.c       $NHDT-Date: 1573505739 2019/11/11 20:55:39 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.386 $ */
+/* NetHack 3.6 options.c       $NHDT-Date: 1574900826 2019/11/28 00:27:06 $  $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.388 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Michael Allison, 2008. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -1313,12 +1313,13 @@ STATIC_VAR const struct paranoia_opts {
        and "d"ie vs "d"eath, synonyms for each other so doesn't matter;
        (also "p"ray vs "P"aranoia, "pray" takes precedence since "Paranoia"
        is just a synonym for "Confirm"); "b"ones vs "br"eak-wand, the
-       latter requires at least two letters; "wand"-break vs "Were"-change,
+       latter requires at least two letters; "e"at vs "ex"plore,
+       "cont"inue eating vs "C"onfirm; "wand"-break vs "Were"-change,
        both require at least two letters during config processing and use
        case-senstivity for 'O's interactive menu */
     { PARANOID_CONFIRM, "Confirm", 1, "Paranoia", 2,
       "for \"yes\" confirmations, require \"no\" to reject" },
-    { PARANOID_QUIT, "quit", 1, "explore", 1,
+    { PARANOID_QUIT, "quit", 1, "explore", 2,
       "yes vs y to quit or to enter explore mode" },
     { PARANOID_DIE, "die", 1, "death", 2,
       "yes vs y to die (explore mode or debug mode)" },
@@ -1328,6 +1329,8 @@ STATIC_VAR const struct paranoia_opts {
       "yes vs y to attack a peaceful monster" },
     { PARANOID_BREAKWAND, "wand-break", 2, "break-wand", 2,
       "yes vs y to break a wand via (a)pply" },
+    { PARANOID_EATING, "eat", 1, "continue", 4,
+      "yes vs y to continue eating after first bite when satiated" },
     { PARANOID_WERECHANGE, "Were-change", 2, (const char *) 0, 0,
       "yes vs y to change form when lycanthropy is controllable" },
     { PARANOID_PRAY, "pray", 1, 0, 0,