summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/item_use.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/item_use.cc')
-rw-r--r--crawl-ref/source/item_use.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index 3e048b4b97..6920fdf814 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -1241,6 +1241,11 @@ static bool fire_item_matches(const item_def &item, unsigned fire_type)
else if (item.base_type == OBJ_WEAPONS
&& is_throwable(item, you.body_size()))
{
+ if ((fire_type & FIRE_RETURNING) && item.special == SPWPN_RETURNING
+ && item_ident(item, ISFLAG_KNOW_TYPE))
+ {
+ return (true);
+ }
if ((fire_type & FIRE_DAGGER) && item.sub_type == WPN_DAGGER)
return (true);
if ((fire_type & FIRE_SPEAR) && item.sub_type == WPN_SPEAR)
@@ -2337,6 +2342,10 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus,
msg::stream << item.name(DESC_CAP_THE) << " returns to your pack!"
<< std::endl;
+
+ // Player saw the item return
+ if (!is_artefact(you.inv[throw_2]))
+ set_ident_flags(you.inv[throw_2], ISFLAG_KNOW_TYPE);
}
else
dec_inv_item_quantity( throw_2, 1 );