diff options
-rw-r--r-- | crawl-ref/source/items.cc | 3 | ||||
-rw-r--r-- | crawl-ref/source/items.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/travel.cc | 10 |
3 files changed, 10 insertions, 5 deletions
diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc index 207549ddbc..53bf6cfa2c 100644 --- a/crawl-ref/source/items.cc +++ b/crawl-ref/source/items.cc @@ -1591,12 +1591,13 @@ int move_item_to_player( int obj, int quant_got, bool quiet ) return (retval); } // end move_item_to_player() -void mark_items_dropped_at(const coord_def &pos) +void mark_items_non_pickup_at(const coord_def &pos) { int item = igrd(pos); while (item != NON_ITEM) { mitm[item].flags |= ISFLAG_DROPPED; + mitm[item].flags &= ~ISFLAG_THROWN; item = mitm[item].link; } } diff --git a/crawl-ref/source/items.h b/crawl-ref/source/items.h index 05481e63b9..1e0d548405 100644 --- a/crawl-ref/source/items.h +++ b/crawl-ref/source/items.h @@ -40,7 +40,7 @@ void inc_mitm_item_quantity( int obj, int amount ); bool move_item_to_grid( int *const obj, int x, int y ); void move_item_stack_to_grid( int x, int y, int targ_x, int targ_y ); int move_item_to_player( int obj, int quant_got, bool quiet = false ); -void mark_items_dropped_at(const coord_def &pos); +void mark_items_non_pickup_at(const coord_def &pos); bool is_stackable_item( const item_def &item ); bool items_stack( const item_def &item1, const item_def &item2, bool force = false ); diff --git a/crawl-ref/source/travel.cc b/crawl-ref/source/travel.cc index 78ce892ea1..08783fbdc5 100644 --- a/crawl-ref/source/travel.cc +++ b/crawl-ref/source/travel.cc @@ -922,7 +922,6 @@ void explore_pickup_event(int did_pickup, int tried_pickup) // pick up, so the only thing to do is to stop. if (tried_pickup && you.running == RMODE_EXPLORE_GREEDY) { - stop_delay(); if (explore_stopped_pos == you.pos() && !Options.pickup_dropped) { @@ -931,10 +930,15 @@ void explore_pickup_event(int did_pickup, int tried_pickup) "Could not pick up %s here, shall I ignore %s? ", tried_pickup == 1? "an item" : "some items", tried_pickup == 1? "it" : "them"); - if (yesno(prompt.c_str(), true, 'y')) - mark_items_dropped_at(you.pos()); + if (yesno(prompt.c_str(), true, 'y', true, false)) + { + mark_items_non_pickup_at(you.pos()); + // Don't stop explore. + return; + } } explore_stopped_pos = you.pos(); + stop_delay(); } } |