summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/itemprop.cc4
-rw-r--r--crawl-ref/source/itemprop.h2
-rw-r--r--crawl-ref/source/religion.cc5
3 files changed, 6 insertions, 5 deletions
diff --git a/crawl-ref/source/itemprop.cc b/crawl-ref/source/itemprop.cc
index db1e52e118..b8218a96b6 100644
--- a/crawl-ref/source/itemprop.cc
+++ b/crawl-ref/source/itemprop.cc
@@ -1597,7 +1597,7 @@ bool is_demonic( const item_def &item )
return (false);
} // end is_demonic()
-bool demonic2nondemonic( item_def &item )
+bool demonic2nondemonic( item_def &item, bool allow_blessed )
{
if (item.base_type != OBJ_WEAPONS)
return (false);
@@ -1608,7 +1608,7 @@ bool demonic2nondemonic( item_def &item )
return (false);
case WPN_DEMON_BLADE:
- item.sub_type = WPN_BLESSED_BLADE;
+ item.sub_type = (allow_blessed) ? WPN_BLESSED_BLADE : WPN_SCIMITAR;
break;
case WPN_DEMON_WHIP:
diff --git a/crawl-ref/source/itemprop.h b/crawl-ref/source/itemprop.h
index 5a7a61e9a5..dbaea713a9 100644
--- a/crawl-ref/source/itemprop.h
+++ b/crawl-ref/source/itemprop.h
@@ -661,7 +661,7 @@ bool is_double_ended( const item_def &item );
int double_wpn_awkward_speed( const item_def &item );
bool is_demonic( const item_def &item );
-bool demonic2nondemonic( item_def &item );
+bool demonic2nondemonic( item_def &item, bool allow_blessed = true );
int get_vorpal_type( const item_def &item );
int get_damage_type( const item_def &item );
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index 68d21d8bdc..8b60c87e58 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -911,9 +911,10 @@ static bool _tso_blessing_holy_wpn(monsters *mon)
set_item_ego_type(wpn, OBJ_WEAPONS, SPWPN_HOLY_WRATH);
wpn.colour = YELLOW;
- // Convert demonic weapons into non-demonic weapons.
+ // Convert demonic weapons into non-demonic weapons, not allowing
+ // blessed weapons, since the holy wrath brand is the blessing.
if (is_demonic(wpn))
- demonic2nondemonic(wpn);
+ demonic2nondemonic(wpn, false);
return true;
}