diff options
Diffstat (limited to 'crawl-ref/source/misc.cc')
-rw-r--r-- | crawl-ref/source/misc.cc | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc index 2756efc18f..a78614471c 100644 --- a/crawl-ref/source/misc.cc +++ b/crawl-ref/source/misc.cc @@ -513,30 +513,17 @@ void curare_hits_player(int agent, int degree) void merfolk_start_swimming(void) { - FixedVector < char, 8 > removed; - if (you.attribute[ATTR_TRANSFORMATION] != TRAN_NONE) untransform(); - for (int i = EQ_WEAPON; i < EQ_RIGHT_RING; i++) - { - removed[i] = 0; - } - - if (you.equip[EQ_BOOTS] != -1) - removed[EQ_BOOTS] = 1; + std::set<equipment_type> removed; + removed.insert(EQ_BOOTS); // Perhaps a bit to easy for the player, but we allow merfolk // to slide out of heavy body armour freely when entering water, // rather than handling emcumbered swimming. -- bwr if (!player_light_armour()) - { - // Can't slide out of just the body armour, cloak comes off -- bwr - if (you.equip[EQ_CLOAK]) - removed[EQ_CLOAK] = 1; - - removed[EQ_BODY_ARMOUR] = 1; - } + removed.insert(EQ_BODY_ARMOUR); remove_equipment(removed); you.redraw_evasion = true; |