diff options
Diffstat (limited to 'crawl-ref/source/item_use.cc')
-rw-r--r-- | crawl-ref/source/item_use.cc | 9 |
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 ); |