diff --git a/src/mutation.cpp b/src/mutation.cpp index 42052dcd1b97d..b666a83d95d8d 100644 --- a/src/mutation.cpp +++ b/src/mutation.cpp @@ -562,6 +562,13 @@ void Character::mutation_effect( const trait_id &mut, const bool worn_destroyed_ } remove_worn_items_with( [&]( item & armor ) { + // Check for exceptions first + if( armor.has_flag( STATIC( flag_id( "OVERSIZE" ) ) ) ) { + return false; + } + if( armor.has_flag( STATIC( flag_id( "INTEGRATED" ) ) ) ) { + return false; + } // initial check for rigid items to pull off, doesn't matter what else the item has you can only wear one rigid item if( branch.conflicts_with_item_rigid( armor ) ) { add_msg_player_or_npc( m_bad, @@ -571,12 +578,6 @@ void Character::mutation_effect( const trait_id &mut, const bool worn_destroyed_ get_map().add_item_or_charges( pos_bub(), armor ); return true; } - if( armor.has_flag( STATIC( flag_id( "OVERSIZE" ) ) ) ) { - return false; - } - if( armor.has_flag( STATIC( flag_id( "INTEGRATED" ) ) ) ) { - return false; - } if( !branch.conflicts_with_item( armor ) ) { return false; }