summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/items.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/items.cc')
-rw-r--r--crawl-ref/source/items.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc
index 7b1f6f46eb..a33c1a41dc 100644
--- a/crawl-ref/source/items.cc
+++ b/crawl-ref/source/items.cc
@@ -547,7 +547,9 @@ static void item_list_on_square( std::vector<const item_def*>& items,
while ( obj != NON_ITEM ) {
/* add them to the items list if they qualify */
if ( !have_nonsquelched || !invisible_to_player(mitm[obj]) )
+ {
items.push_back( &mitm[obj] );
+ }
obj = mitm[obj].link;
}
}
@@ -1299,6 +1301,15 @@ int find_free_slot(const item_def &i)
// the player's inventory is full.
int move_item_to_player( int obj, int quant_got, bool quiet )
{
+ if (you.attribute[ATTR_CAUGHT] && mitm[obj].base_type == OBJ_MISSILES
+ && mitm[obj].sub_type == MI_THROWING_NET)
+ {
+ quant_got--;
+ mpr("You cannot pick up the net that traps you!");
+ if (!quant_got)
+ return (1);
+ }
+
int retval = quant_got;
// Gold has no mass, so we handle it first.
@@ -1340,7 +1351,7 @@ int move_item_to_player( int obj, int quant_got, bool quiet )
retval = part;
}
-
+
if (is_stackable_item( mitm[obj] ))
{
for (int m = 0; m < ENDOFPACK; m++)