summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/directn.cc2
-rw-r--r--crawl-ref/source/fight.cc7
2 files changed, 8 insertions, 1 deletions
diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc
index cd5901145f..0437b72ca0 100644
--- a/crawl-ref/source/directn.cc
+++ b/crawl-ref/source/directn.cc
@@ -2062,7 +2062,7 @@ static std::string _describe_monster_weapon(const monsters *mons)
name1 = weap->name(DESC_NOCAP_A, false, false, true,
false, ISFLAG_KNOW_CURSE);
}
- if (alt && (!weap || mons_wields_two_weapons(mons)))
+ if (alt && mons_wields_two_weapons(mons))
{
name2 = alt->name(DESC_NOCAP_A, false, false, true,
false, ISFLAG_KNOW_CURSE);
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index be37c09cfb..d26d1ee36b 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -3911,6 +3911,13 @@ void melee_attack::mons_perform_attack_rounds()
if (special_damage > 0)
defender->hurt(attacker, special_damage);
}
+
+ item_def *weap = atk->mslot_item(MSLOT_WEAPON);
+ if (weap && weap->cursed() && is_range_weapon(*weap)
+ && !(weap->flags & ISFLAG_KNOW_CURSE))
+ {
+ set_ident_flags( *weap, ISFLAG_KNOW_CURSE );
+ }
}
}