diff --git a/dat/opthelp b/dat/opthelp index 73945261a..de91c565b 100644 --- a/dat/opthelp +++ b/dat/opthelp @@ -17,6 +17,7 @@ cmdassist give help for errors on direction & other commands [True] color use different colors for objects on screen [True for micros] confirm ask before hitting tame or peaceful monsters [True] dark_room show floor not in sight in different color [True] +dropped_nopick exclude dropped objects from autopickup [False] eight_bit_tty send 8-bit characters straight to terminal [False] extmenu tty, curses: use menu for # (extended commands) [False] X11: menu has all commands (T) or traditional subset (F) @@ -50,7 +51,6 @@ null allow nulls to be sent to your terminal [True] delay code) if moving objects seem to teleport across rooms perm_invent keep inventory in a permanent window [False] pickup_thrown override pickup_types for thrown objects [True] -pickup_dropped evaluate pickup_types for dropped objects [True] pushweapon when wielding a new weapon, put your previously [False] wielded weapon into the secondary weapon slot quick_farsight usually skip the chance to browse the map when [False] diff --git a/doc/Guidebook.mn b/doc/Guidebook.mn index 16e45fa54..33563866e 100644 --- a/doc/Guidebook.mn +++ b/doc/Guidebook.mn @@ -3868,6 +3868,13 @@ Show out-of-sight areas of lit rooms (default on). Persistent. .lp "deaf " Start the character permanently deaf (default false). Persistent. +.lp dropped_nopick +If this option is on, items you dropped will not be automatically +picked up, even if +.op autopickup +is also on and they are in +.op pickup_types +or match a positive autopickup exception (defualt off). Persistent. .lp disclose Controls what information the program reveals when the game ends. Value is a space separated list of prompting/category pairs @@ -4387,17 +4394,6 @@ level (Unencumbered, Burdened, streSsed, straiNed, overTaxed, or overLoaded), you will be asked if you want to continue. (Default \(oqS\(cq). Persistent. -.lp pickup_dropped -If this option is on, items you dropped will be treated like normal items for -.op autopickup -purposes. If it is disabled, items you dropped will not be automatically -picked up, even if -.op autopickup -is on and they are in -.op pickup_types -or match a positive autopickup exception. -Default is on. -Persistent. .lp pickup_thrown If this option is on and .op autopickup diff --git a/doc/Guidebook.tex b/doc/Guidebook.tex index 7f74e62b2..6254b89d2 100644 --- a/doc/Guidebook.tex +++ b/doc/Guidebook.tex @@ -4224,6 +4224,12 @@ Show out-of-sight areas of lit rooms (default on). Persistent. \item[\ib{deaf}] Start the character permanently deaf (default false). Persistent. %.lp +\item[\ib{dropped\verb+_+nopick}] +If this option is on, items you dropped will not be automatically picked up, +even if ``{\it autopickup\/}'' is also on and they are in +``{\it pickup\verb+_+types\/}'' or match a positive autopickup exception +(default off). Persistent. +%.lp \item[\ib{disclose}] Controls what information the program reveals when the game ends. Value is a space separated list of prompting/category pairs @@ -4809,15 +4815,6 @@ level (Unencumbered, Burdened, streSsed, straiNed, overTaxed, or overLoaded), you will be asked if you want to continue. (Default `S'). Persistent. %.lp -\item[\ib{pickup\verb+_+dropped}] -If this option is on, items you dropped will be treated like normal items for -``{\it autopickup\/}'' purposes. If it disabled, items you dropped will not be -automatically picked up, even if ``{\it autopickup\/}'' is on and they are in -``{\it pickup\verb+_+types\/}'' or -match an autopickup exception. -Default is on. -Persistent. -%.lp \item[\ib{pickup\verb+_+thrown}] If this option is on and ``{\it autopickup\/}'' is also on, try to pick up things that you threw, even if they aren't in diff --git a/include/flag.h b/include/flag.h index 8fd5a07bb..852878931 100644 --- a/include/flag.h +++ b/include/flag.h @@ -45,9 +45,9 @@ struct flag { boolean mention_decor; /* give feedback for unobscured furniture */ boolean mention_walls; /* give feedback when bumping walls */ boolean nap; /* `timed_delay' option for display effects */ + boolean nopick_dropped; /* items you dropped may be autopicked */ boolean null; /* OK to send nulls to the terminal */ boolean pickup; /* whether you pickup or move and look */ - boolean pickup_dropped; /* items you dropped may be autopicked */ boolean pickup_thrown; /* auto-pickup items you threw */ boolean pushweapon; /* When wielding, push old weapon into second slot */ boolean quick_farsight; /* True disables map browsing during random diff --git a/include/optlist.h b/include/optlist.h index 16be32b31..8823f28ab 100644 --- a/include/optlist.h +++ b/include/optlist.h @@ -261,6 +261,9 @@ static int optfn_##a(int, int, boolean, char *, char *); NHOPTC(dogname, Advanced, PL_PSIZ, opt_in, set_gameview, No, Yes, No, No, NoAlias, "name of your starting pet if it is a little dog") + NHOPTB(dropped_nopick, Behavior, 0, opt_in, set_in_game, + Off, Yes, No, No, NoAlias, &flags.nopick_dropped, Term_False, + "don't autopickup dropped items") NHOPTC(dungeon, Advanced, MAXDCHARS + 1,opt_in, set_in_config, No, Yes, No, No, NoAlias, "list of symbols to use in drawing the dungeon map") @@ -531,9 +534,6 @@ static int optfn_##a(int, int, boolean, char *, char *); NHOPTC(pickup_burden, Advanced, 20, opt_in, set_in_game, No, Yes, No, Yes, NoAlias, "maximum burden picked up before prompt") - NHOPTB(pickup_dropped, Behavior, 0, opt_out, set_in_game, - On, Yes, No, No, NoAlias, &flags.pickup_dropped, Term_False, - "consider dropped items for autopickup") NHOPTB(pickup_thrown, Behavior, 0, opt_out, set_in_game, On, Yes, No, No, NoAlias, &flags.pickup_thrown, Term_False, "autopickup thrown items") diff --git a/src/options.c b/src/options.c index 57e32d457..740bcaa9a 100644 --- a/src/options.c +++ b/src/options.c @@ -8594,7 +8594,7 @@ doset_simple_menu(void) spelling of their names; emphasize what it means */ if (allopt[i].idx == opt_pickup_types || allopt[i].idx == opt_pickup_thrown - || allopt[i].idx == opt_pickup_dropped) + || allopt[i].idx == opt_dropped_nopick) Strcat(buf, " (for autopickup)"); add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, NO_COLOR, buf, MENU_ITEMFLAGS_NONE); diff --git a/src/pickup.c b/src/pickup.c index 8a531668c..d7c7c2026 100644 --- a/src/pickup.c +++ b/src/pickup.c @@ -904,10 +904,10 @@ autopick_testobj(struct obj *otmp, boolean calc_costly) if (costly && !otmp->no_charge) return FALSE; - /* pickup_thrown/!pickup_dropped override pickup_types and exceptions */ + /* pickup_thrown/nopick_dropped override pickup_types and exceptions */ if (flags.pickup_thrown && otmp->was_thrown) return TRUE; - if (!flags.pickup_dropped && otmp->was_dropped) + if (flags.nopick_dropped && otmp->was_dropped) return FALSE; /* check for pickup_types */