diff options
Diffstat (limited to 'crawl-ref/source/food.cc')
-rw-r--r-- | crawl-ref/source/food.cc | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc index 0bd634dc44..f72ef2cf80 100644 --- a/crawl-ref/source/food.cc +++ b/crawl-ref/source/food.cc @@ -195,31 +195,23 @@ bool butchery(void) bool wpn_switch = false; bool new_cursed = false; int old_weapon = you.equip[EQ_WEAPON]; + int old_gloves = you.equip[EQ_GLOVES]; const transformation_type transform = static_cast<transformation_type>(you.attribute[ATTR_TRANSFORMATION]); // Xom probably likes this, occasionally bool teeth_butcher = (you.mutation[MUT_FANGS] == 3); - - bool barehand_butcher = - (you.equip[ EQ_GLOVES ] == -1 - && (transform_can_butcher_barehanded(transform) - || (transform == TRAN_NONE - && (you.species == SP_TROLL - || you.species == SP_GHOUL - || you.mutation[MUT_CLAWS])))); - - bool gloved_butcher = (you.species == SP_TROLL || - you.species == SP_GHOUL || - you.mutation[MUT_CLAWS]) && - (you.equip[EQ_GLOVES] != -1 && - !item_cursed(you.inv[you.equip[EQ_GLOVES]])); - int old_gloves = you.equip[EQ_GLOVES]; - bool can_butcher = teeth_butcher || barehand_butcher || - (you.equip[EQ_WEAPON] != -1 && - can_cut_meat(you.inv[you.equip[EQ_WEAPON]])); + bool barehand_butcher = (transform_can_butcher_barehanded(transform) + || you.has_claws()) && you.equip[EQ_GLOVES] == -1; + + bool gloved_butcher = you.has_claws() && (you.equip[EQ_GLOVES] != -1 + && !item_cursed(you.inv[you.equip[EQ_GLOVES]])); + + bool can_butcher = teeth_butcher || barehand_butcher + || you.equip[EQ_WEAPON] != -1 + && can_cut_meat(you.inv[you.equip[EQ_WEAPON]]); if (igrd[you.x_pos][you.y_pos] == NON_ITEM) { |