summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/docs/crawl_manual.txt7
-rw-r--r--crawl-ref/docs/options_guide.txt26
-rw-r--r--crawl-ref/settings/init.txt11
-rw-r--r--crawl-ref/source/acr.cc8
-rw-r--r--crawl-ref/source/delay.cc11
-rw-r--r--crawl-ref/source/food.cc16
-rw-r--r--crawl-ref/source/initfile.cc24
-rw-r--r--crawl-ref/source/it_use2.cc27
-rw-r--r--crawl-ref/source/item_use.cc15
-rw-r--r--crawl-ref/source/misc.cc4
10 files changed, 87 insertions, 62 deletions
diff --git a/crawl-ref/docs/crawl_manual.txt b/crawl-ref/docs/crawl_manual.txt
index 53f028db5a..6e659756aa 100644
--- a/crawl-ref/docs/crawl_manual.txt
+++ b/crawl-ref/docs/crawl_manual.txt
@@ -521,9 +521,10 @@ spells previously memorised. Again, see the Targeting section.
Some monsters can be friendly; friendly monsters will follow you around
and fight on your behalf (you gain half the normal experience points for
any kills they make). You can command your allies using the 't' key,
-which lets you either shout to attract them or tell them who to attack.
-You can also shout to get the attention of all sleeping monsters in
-range if, for some reason, you want to do that.
+which lets you shout to attract them or tell them who to attack, or else
+tell them to stay where they are or to follow you again.
+You can also shout to get the attention of all monsters in range if, for
+some reason, you want to do that.
Some special monsters are Uniques. You can identify a unique because he
or she will have a name and personality. Many of these come up with very
diff --git a/crawl-ref/docs/options_guide.txt b/crawl-ref/docs/options_guide.txt
index b5418f5e3d..2a9a42c53a 100644
--- a/crawl-ref/docs/options_guide.txt
+++ b/crawl-ref/docs/options_guide.txt
@@ -914,17 +914,19 @@ always_confirm_butcher = false
one corpse on the square. If there are multiple corpses on a
square, you will always be prompted, regardless of this option.
-chunks_autopickup = false
- If true then butchered flesh will be autopickup'd right after
- they're generated (and after switching back from the
- butchering weapon to usual weapon, if necessary). Respects
- all of the autopickup options. Requires '%' to be in the
- autopickup line.
-
-swap_when_safe = false
+chunks_autopickup = true
+ If true then butchered flesh will be automatically picked up
+ right after they're generated (and after switching back from
+ the butchering weapon to the usual weapon, if necessary).
+ Respects all of the autopickup options. Requires '%' to be
+ in the autopickup line.
+ Does not apply to Vampires who will pick up bottled potions
+ of blood regardless of this option, and not pick up chunks.
+
+swap_when_safe = true
If both this and easy_butcher are true, then if an auto-switch
- butchery is interupted, then the auto-switch will be reversed
- as soon as your safe again.
+ butchery is interupted, the auto-switch will be reversed as
+ soon as you are safe again.
easy_quit_item_prompts = true
Setting this option to true allows the quitting of item listing
@@ -1095,7 +1097,7 @@ show_gold_turns = false
If set to true, this option adds an extra line to the stat area
to display the current gold and turn counters.
-show_beam = false
+show_beam = true
When performing actions such as throwing or zapping, you can
toggle whether to show the beam path or not. This option
controls the initial status of this toggle. When set to true,
@@ -1165,6 +1167,8 @@ menu_colour = <match>:<colour>:<regex>
rot-inducing (chunks/corpses that cause rotting)
equipped (equipped items)
artefact (item is an artefact, whether identified or not)
+ evil_item (item is hated by the good gods)
+ evil_eating (eating this item is punished by the good gods)
To colour worn stuff and highlight cursed items, take
menu_colour = inventory:lightred:equipped.* cursed
diff --git a/crawl-ref/settings/init.txt b/crawl-ref/settings/init.txt
index 92cf07cab0..e38503d658 100644
--- a/crawl-ref/settings/init.txt
+++ b/crawl-ref/settings/init.txt
@@ -205,8 +205,8 @@ include = travel_stoppers.txt
# easy_confirm = (none | safe)
# easy_butcher = false
# always_confirm_butcher = true
-# chunks_autopickup = true
-# swap_when_safe = true
+# chunks_autopickup = false
+# swap_when_safe = false
# easy_quit_item_prompts = false
# easy_exit_menu = false
# sort_menus = pickup: true : basename, qualname, curse, qty
@@ -222,7 +222,7 @@ include = travel_stoppers.txt
# delay_message_clear = true
# show_inventory_weights = true
# show_gold_turns = true
-# show_beam = true
+# show_beam = false
# item_stack_summary_minimum = 5
# list_rotten = false
# mlist_min_height = 5
@@ -238,10 +238,9 @@ menu_colour_prefix_class = true
# Food is colour coded as follows:
#
# yellow = preferred food
-# lightgrey = normal food
# darkgrey = cannot be eaten at all
-# lightred = extremely dangerous
-# magenta = mutagenic
+# lightred = extremely dangerous (causes rot)
+# magenta = mutagenic, or eating frowned upon by the good gods
# lightgreen = poisonous
# brown = contaminated (may cause sickening)
#
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 5b62dabf80..6a93a94b73 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -1416,9 +1416,15 @@ static void _input()
if (need_to_autoinscribe())
autoinscribe();
+ // XXX: Is there some smart way to avoid autoswitching back if we're
+ // just about to continue butchering?
if (i_feel_safe() && you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED])
{
- weapon_switch(you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED]);
+ int weap = you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED];
+ if (weap == ENDOFPACK)
+ weap = -1;
+
+ weapon_switch(weap);
print_stats();
// To prevent spam in case the weapon can't be switched back to.
diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc
index 5c149ad9da..151fa3947e 100644
--- a/crawl-ref/source/delay.cc
+++ b/crawl-ref/source/delay.cc
@@ -377,7 +377,7 @@ void stop_delay( bool stop_stair_travel )
delay.type == DELAY_BOTTLE_BLOOD ? "bottling blood from"
: "sacrificing");
- // Corpse keeps track of work in plus2 field, see handle_delay() -- bwr
+ // Corpse keeps track of work in plus2 field, see handle_delay(). -- bwr
if (butcher_swap_warn)
{
std::string weapon;
@@ -393,12 +393,19 @@ void stop_delay( bool stop_stair_travel )
(multiple_corpses ? "s" : ""), weapon.c_str());
if (Options.swap_when_safe)
+ {
+ // XXX: This is a hack!
+ // (Necessary because attributes are unsigned chars.)
you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED]
- = butcher_swap_weapon;
+ = (butcher_swap_weapon == -1 ? ENDOFPACK
+ : butcher_swap_weapon);
+ }
}
else
+ {
mprf("You stop %s the corpse%s.", butcher_verb.c_str(),
multiple_corpses ? "s" : "");
+ }
pop_delay();
break;
diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc
index 16e4271503..f030f9af06 100644
--- a/crawl-ref/source/food.cc
+++ b/crawl-ref/source/food.cc
@@ -132,15 +132,27 @@ void set_hunger( int new_hunger_level, bool suppress_msg )
// More of a "weapon_switch back from butchering" function, switching
// to a weapon is done using the wield_weapon code.
// special cases like staves of power or other special weps are taken
-// care of by calling wield_effects() {gdl}
+// care of by calling wield_effects(). {gdl}
void weapon_switch( int targ )
{
- if (targ == -1)
+ if (targ == -1) // Unarmed Combat.
{
+ // Already unarmed?
+ if (you.equip[EQ_WEAPON] == -1)
+ return;
+
mpr( "You switch back to your bare hands." );
}
else
{
+ // Possibly not valid anymore (dropped etc.)
+ if (!is_valid_item(you.inv[targ]))
+ return;
+
+ // Already wielding this weapon?
+ if (you.equip[EQ_WEAPON] == you.inv[targ].link)
+ return;
+
mprf("Switching back to %s.",
you.inv[targ].name(DESC_INVENTORY).c_str());
}
diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc
index 6665a7a096..5b414e5158 100644
--- a/crawl-ref/source/initfile.cc
+++ b/crawl-ref/source/initfile.cc
@@ -630,23 +630,23 @@ void game_options::reset_options()
show_more_prompt = true;
show_gold_turns = false;
- show_beam = false;
+ show_beam = true;
use_old_selection_order = false;
- prev_race = 0;
- prev_cls = 0;
- prev_ck = GOD_NO_GOD;
- prev_dk = DK_NO_SELECTION;
- prev_pr = GOD_NO_GOD;
- prev_weapon = WPN_UNKNOWN;
- prev_book = SBT_NO_SELECTION;
+ prev_race = 0;
+ prev_cls = 0;
+ prev_ck = GOD_NO_GOD;
+ prev_dk = DK_NO_SELECTION;
+ prev_pr = GOD_NO_GOD;
+ prev_weapon = WPN_UNKNOWN;
+ prev_book = SBT_NO_SELECTION;
prev_randpick = false;
remember_name = true;
#ifdef USE_ASCII_CHARACTERS
- char_set = CSET_ASCII;
+ char_set = CSET_ASCII;
#else
- char_set = CSET_IBM;
+ char_set = CSET_IBM;
#endif
// set it to the .crawlrc default
@@ -668,8 +668,8 @@ void game_options::reset_options()
easy_unequip = true;
easy_butcher = true;
always_confirm_butcher = false;
- chunks_autopickup = false;
- swap_when_safe = false;
+ chunks_autopickup = true;
+ swap_when_safe = true;
list_rotten = true;
easy_confirm = CONFIRM_SAFE_EASY;
easy_quit_item_prompts = true;
diff --git a/crawl-ref/source/it_use2.cc b/crawl-ref/source/it_use2.cc
index 575815ff27..69b29c372b 100644
--- a/crawl-ref/source/it_use2.cc
+++ b/crawl-ref/source/it_use2.cc
@@ -383,7 +383,7 @@ bool potion_effect( potion_type pot_eff, int pow, bool was_known )
bool unwield_item(bool showMsgs)
{
const int unw = you.equip[EQ_WEAPON];
- if ( unw == -1 )
+ if (unw == -1)
return (false);
if (you.duration[DUR_BERSERKER])
@@ -396,20 +396,19 @@ bool unwield_item(bool showMsgs)
return (false);
you.equip[EQ_WEAPON] = -1;
- you.special_wield = SPWLD_NONE;
- you.wield_change = true;
+ you.special_wield = SPWLD_NONE;
+ you.wield_change = true;
you.m_quiver->on_weapon_changed();
item_def &item(you.inv[unw]);
- if ( item.base_type == OBJ_MISCELLANY &&
- item.sub_type == MISC_LANTERN_OF_SHADOWS )
+ if (item.base_type == OBJ_MISCELLANY
+ && item.sub_type == MISC_LANTERN_OF_SHADOWS )
{
you.current_vision += 2;
setLOSRadius(you.current_vision);
}
-
- if (item.base_type == OBJ_WEAPONS)
+ else if (item.base_type == OBJ_WEAPONS)
{
if (is_fixed_artefact( item ))
{
@@ -485,9 +484,6 @@ bool unwield_item(bool showMsgs)
mpr("You feel the strange hunger wane.");
break;
- /* case 8: draining
- case 9: speed, 10 slicing etc */
-
case SPWPN_DISTORTION:
// Removing the translocations skill reduction of effect,
// it might seem sensible, but this brand is supposed
@@ -503,18 +499,19 @@ bool unwield_item(bool showMsgs)
"distortion unwield" );
break;
- // when more are added here, *must* duplicate unwielding
- // effect in vorpalise weapon scroll effect in read_scoll
- } // end switch
+ // NOTE: When more are added here, *must* duplicate unwielding
+ // effect in vorpalise weapon scroll effect in read_scoll.
+ }
if (you.duration[DUR_WEAPON_BRAND])
{
you.duration[DUR_WEAPON_BRAND] = 0;
set_item_ego_type( item, OBJ_WEAPONS, SPWPN_NORMAL );
- // we're letting this through even if hiding messages
+
+ // We're letting this through even if hiding messages.
mpr("Your branding evaporates.");
}
- } // end if
+ }
}
if (item.base_type == OBJ_STAVES && item.sub_type == STAFF_POWER)
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index c660210e59..34c11516dd 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -473,10 +473,9 @@ int item_special_wield_effect(const item_def &item)
}
}
-// provide a function for handling initial wielding of 'special'
+// Provide a function for handling initial wielding of 'special'
// weapons, or those whose function is annoying to reproduce in
-// other places *cough* auto-butchering *cough* {gdl}
-
+// other places *cough* auto-butchering *cough*. {gdl}
void wield_effects(int item_wield_2, bool showMsgs)
{
unsigned char i_dam = 0;
@@ -484,7 +483,7 @@ void wield_effects(int item_wield_2, bool showMsgs)
const bool known_cursed = item_known_cursed(you.inv[item_wield_2]);
item_def &item = you.inv[item_wield_2];
- // and here we finally get to the special effects of wielding {dlb}
+ // And here we finally get to the special effects of wielding. {dlb}
switch (item.base_type)
{
case OBJ_MISCELLANY:
@@ -511,9 +510,9 @@ void wield_effects(int item_wield_2, bool showMsgs)
}
else if (!maybe_identify_staff(item))
{
- // Give curse status when wielded.
- // Right now that's always "uncursed". -- bwr
- set_ident_flags( item, ISFLAG_KNOW_CURSE );
+ // Give curse status when wielded.
+ // Right now that's always "uncursed". -- bwr
+ set_ident_flags( item, ISFLAG_KNOW_CURSE );
}
break;
}
@@ -528,7 +527,7 @@ void wield_effects(int item_wield_2, bool showMsgs)
const bool was_known = item_type_known(item);
- // only used for Singing Sword introducing itself
+ // Only used for Singing Sword introducing itself
// (could be extended to other talking weapons...)
const char *old_desc = item.name(DESC_CAP_THE).c_str();
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index edc211f8f1..4224889d69 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -1153,10 +1153,10 @@ static void maybe_bloodify_square(int x, int y, int amount, bool spatter = false
continue;
// Spattering onto walls etc. less likely.
- if (grd[x+i][y+j] < DNGN_MINMOVE && one_chance_in(3))
+ if (grd[x+i][y+j] < DNGN_MINMOVE && !one_chance_in(3))
continue;
- maybe_bloodify_square(x+i, y+j, amount/10);
+ maybe_bloodify_square(x+i, y+j, amount/15);
}
}
}