From 59ed12959885ad6abb1b8c3cbe31e66e74417136 Mon Sep 17 00:00:00 2001 From: haranp Date: Sat, 13 Dec 2008 14:18:22 +0000 Subject: Fix spurious encumberance messages when combining ammo in inventory. Fixes 2354891. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7823 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/item_use.cc | 2 +- crawl-ref/source/items.cc | 12 +++++++----- crawl-ref/source/items.h | 8 ++++---- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc index f20ff2e789..5548e6d666 100644 --- a/crawl-ref/source/item_use.cc +++ b/crawl-ref/source/item_use.cc @@ -1741,7 +1741,7 @@ void _merge_ammo_in_inventory(int slot) if (!done_anything) mpr("You combine your ammunition."); - inc_inv_item_quantity(slot, you.inv[i].quantity); + inc_inv_item_quantity(slot, you.inv[i].quantity, true); dec_inv_item_quantity(i, you.inv[i].quantity); done_anything = true; } diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc index 23d44aa227..1eb3693b81 100644 --- a/crawl-ref/source/items.cc +++ b/crawl-ref/source/items.cc @@ -212,7 +212,7 @@ bool is_valid_item( const item_def &item ) // Reduce quantity of an inventory item, do cleanup if item goes away. // // Returns true if stack of items no longer exists. -bool dec_inv_item_quantity( int obj, int amount ) +bool dec_inv_item_quantity( int obj, int amount, bool suppress_burden ) { bool ret = false; @@ -253,7 +253,8 @@ bool dec_inv_item_quantity( int obj, int amount ) you.inv[obj].quantity -= amount; } - burden_change(); + if ( !suppress_burden ) + burden_change(); return (ret); } @@ -285,14 +286,16 @@ bool dec_mitm_item_quantity( int obj, int amount ) return (false); } -void inc_inv_item_quantity( int obj, int amount ) +void inc_inv_item_quantity( int obj, int amount, bool suppress_burden ) { if (you.equip[EQ_WEAPON] == obj) you.wield_change = true; you.m_quiver->on_inv_quantity_changed(obj, amount); you.inv[obj].quantity += amount; - burden_change(); + + if ( !suppress_burden ) + burden_change(); } void inc_mitm_item_quantity( int obj, int amount ) @@ -2368,7 +2371,6 @@ bool can_autopickup() static void _do_autopickup() { - //David Loewenstern 6/99 int n_did_pickup = 0; int n_tried_pickup = 0; diff --git a/crawl-ref/source/items.h b/crawl-ref/source/items.h index ecf947786b..959f2efd0a 100644 --- a/crawl-ref/source/items.h +++ b/crawl-ref/source/items.h @@ -32,11 +32,11 @@ enum item_source_type bool is_valid_item( const item_def &item ); -bool dec_inv_item_quantity( int obj, int amount ); -bool dec_mitm_item_quantity( int obj, int amount ); +bool dec_inv_item_quantity(int obj, int amount, bool suppress_burden = false); +bool dec_mitm_item_quantity(int obj, int amount); -void inc_inv_item_quantity( int obj, int amount ); -void inc_mitm_item_quantity( int obj, int amount ); +void inc_inv_item_quantity(int obj, int amount, bool suppress_burden = false); +void inc_mitm_item_quantity(int obj, int amount); bool move_item_to_grid( int *const obj, const coord_def& p ); void move_item_stack_to_grid( const coord_def& from, const coord_def& to ); -- cgit v1.2.3-54-g00ecf