Also add a key to some kind of butchering help (may need tweaking) and 'b' is yet another synonym for 'c' but will allow Vampires to butcher a corpse they'd otherwise bottle. This only works while the prompt is given, i.e. if always_confirm_butcher is false Vampires will automatically attempt to bottle the blood in a single corpse (unless that is impossible, in which case they'll butcher it instead).
Also fix corpses sometimes not being destroyed when drained by a Vampire. (Big oops!)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6366 c06c8d41-db1a-0410-9941-cceddc491573
BZIUKX6D2YDH4PCSNOAB3VA6CVE73IJEMQWDB6RKDRGL5AKCDOFAC
ONUYUCYA6VPYVCWJRZ76PV5PVW4EWKQYFMFN73R2PYNDGJPTLZDQC
B7DNCNY7SXL5WAW5B3XZP5KIQSBWOJ3N2YW46WOUQKTRBRRZ7YOQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
4DEFHDNO2GUBYL4EGYEAR2IP3KBDXRU7UL7L4P7HEZY2UNR6IYJAC
U6OTXM3JN7SGPVIGQ5F6NR2I7J5V7KOWFQ7AVNNRQQDNLBEDMYFQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
UET576SVCGS2TXEDRTO7BUTOTLJ77MYHIVZJCDWGH2BAXYMKG6DAC
PZNRGNZPN4YLXL2UDMEUPE33AAZZ6Z2YPK6EQGYZL2PNTRWLCUNQC
57E4T664CXRFPVW2BZBYI33UIHFS4PSEZURZYPSYSZK5DRLJJ5CQC
ARVJY7XPMCHI4IAQMD2VUWTAXQLCRNVSM2MK3YT4S4WHQYFTLEMAC
MBBPLL4SZUB3JUUYQYLZW7S5OXRCEGJX3WWADOQXGHWQ7BIKCY5QC
5TG5LXU4DX65KMWCZ7YJHOB3VAETQAVBUHEUSQTPMA327XV2HQWAC
JCWJWGMQIKQGSSFJUQRKNIWW3HBOJSHYDTOPPE5BWOJTIJTDYUTAC
IOMV4CS3PJA6VO3NYB6T45OTXQ5QYP6LT4JOCSLPKP22HWZ3FFKQC
RQR4PTMGQLTRWLYRU3KXIIDGND7FBORESJWMWFVD3WYU5SISZXAAC
RX6575DZOHRUXQUZH34YZGPZJF4STUPLBQDIVTINA2L6LVCKRIGQC
3ZNI2YMHYXRVEONY5CGWXSRMFSLOATZMKU7H6HRY3CC2W6OZAM7QC
VRFQK6S2TXOFFO5K5HRDXPR7QEKKAZAVCASSIJVPWQ4GE26UOGTQC
M47QBURKKRV2JFK6U7GQNVWK7RUTBVPBJ5FHURC55SKQSXAUFSBAC
LW4N5EHKL776DURXZMAM6JEW3JPWWX5BSNP7TCZHTLCDOQTTGFCAC
KEANRIMF5CGFVZ2XJYNFPOAKLXOSOJUOVA73IWBWOG576265ERHAC
you.redraw_evasion = true;
you.redraw_gold = true;
you.redraw_experience = true;
you.wield_change = true;
you.redraw_quiver = true;
you.redraw_evasion = true;
you.redraw_gold = true;
you.redraw_experience = true;
you.wield_change = true;
you.redraw_quiver = true;
snprintf(info, INFO_SIZE, "%s %s?",
(sacrifice
|| !can_bottle_blood_from_corpse(si->plus)) ?
"Butcher" : "Bottle",
do
{
mprf(MSGCH_PROMPT, "%s %s? [yc/n/a/q/?]",
(sacrifice || !can_bottle_blood_from_corpse(si->plus)) ?
"Butcher" : "Bottle",
if (result == -1) // (q)uit
{
canned_msg(MSG_OK);
_terminate_butchery(wpn_switch, removed_gloves, new_cursed,
old_weapon, old_gloves);
return (false);
}
else if (result == 0) // (n)o
{
continue;
}
else if (result == 1 || result == 2) // (y)es, (a)ll
{
if (!_prepare_butchery(can_butcher, barehand_butcher,
wpn_switch, removed_gloves, new_cursed))
keyin = tolower(c_getch());
switch (keyin)
return (false);
}
corpse_id = si->index();
case 'b':
force_butcher = true;
// intentional fall-through
case 'y':
case 'c':
case 'd':
case 'a':
if (!_prepare_butchery(can_butcher, barehand_butcher,
wpn_switch, removed_gloves,
new_cursed))
{
return (false);
}
corpse_id = si->index();
if (result == 2) // (a)ll
{
if (can_bottle_blood_from_corpse(si->plus)
&& (!you.duration[DUR_PRAYER]
|| !god_likes_butchery(you.religion)))
if (keyin == 'a')
else
butcher_all = true;
break;
case 'q':
canned_msg(MSG_OK);
_terminate_butchery(wpn_switch, removed_gloves, new_cursed,
old_weapon, old_gloves);
return (false);
case '?':
show_butchering_help();
mesclr();
redraw_screen();
repeat_prompt = true;
break;
default:
break;
%%%%
butchering
<h>Butchering<h>
<w>y, c</w>: Butcher the selected corpse.
<w>a</w> : Butcher this corpse and all the ones following in the stack.
<w>q</w> : Quit the prompt (don't butcher anything).
<w>n</w> : Don't butcher this corpse, skip to the next one.
(This is the default behaviour if you answer with anything not
listed here.)
<h>Special information for Vampires</h>
<w>y, c</w>: Butcher or bottle the selected corpse, as applicable.
<w>b</w> : Butcher this corpse even if you would normally bottle it.
<w>a</w> : Butcher this corpse and all the ones following in the stack.
If the prompt is about bottling the blood, all bloodless corpses
will be skipped.
<h>Notes for Tiles</h>
If you are playing with Tiles you can butcher (or bottle) a single
corpse on the ground by clicking the <w>left mouse button</w> while pressing
<w>Shift</w>.