Skip to content

Commit be71696

Browse files
committed
Move the existing cache
1 parent cdb1e04 commit be71696

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/melee.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2742,6 +2742,12 @@ double Character::evaluate_weapon( const item &maybe_weapon ) const
27422742
double Character::evaluate_weapon_internal( const item &maybe_weapon, bool can_use_gun,
27432743
bool use_silent ) const
27442744
{
2745+
if( is_wielding( maybe_weapon ) || ( !get_wielded_item() && maybe_weapon.is_null() ) ) {
2746+
auto cached_value = cached_info.find( "weapon_value" );
2747+
if( cached_value != cached_info.end() ) {
2748+
return cached_value->second;
2749+
}
2750+
}
27452751
// Needed because evaluation includes electricity via linked cables.
27462752
const map &here = get_map();
27472753

@@ -2760,6 +2766,11 @@ double Character::evaluate_weapon_internal( const item &maybe_weapon, bool can_u
27602766
"%s %s valued at <color_light_cyan>%1.2f as a melee weapon to wield</color>.", disp_name( true ),
27612767
maybe_weapon.type->get_id().str(), val_melee );
27622768
double val = std::max( val_gun, val_melee );
2769+
2770+
2771+
if( is_wielding( maybe_weapon ) || ( !get_wielded_item() && maybe_weapon.is_null() ) ) {
2772+
cached_info.emplace( "weapon_value", val );
2773+
}
27632774
return val;
27642775
}
27652776

0 commit comments

Comments
 (0)