diff --git a/src/character.cpp b/src/character.cpp index 33e2b678979ae..aa476ee7d0af3 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -8958,7 +8958,7 @@ bool Character::consume_charges( item &used, int qty ) return true; } - used.ammo_consume( qty, pos(), nullptr ); + used.ammo_consume( qty, pos(), this ); return false; } diff --git a/src/item.cpp b/src/item.cpp index 6f97572e06122..f5b2eae6a7a02 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -8030,7 +8030,7 @@ int item::ammo_consume( int qty, const tripoint &pos, Character *carrier ) // Consume bio pwr directly if( carrier != nullptr && has_flag( flag_USES_BIONIC_POWER ) ) { int bio_used = std::min( units::to_kilojoule( carrier->get_power_level() ), qty ); - carrier->mod_power_level( units::from_kilojoule( bio_used ) ); + carrier->mod_power_level( -units::from_kilojoule( bio_used ) ); qty -= bio_used; }