diff --git a/src/mutation.cpp b/src/mutation.cpp index 19451fc063178..6c198d909a79f 100644 --- a/src/mutation.cpp +++ b/src/mutation.cpp @@ -2364,12 +2364,11 @@ void Character::customize_appearance( customize_appearance_choice choice ) char_has_trait = true; } - const std::string &entry_name = mutation_name( trait ); + const std::string has_it = char_has_trait ? " *" : ""; amenu.addentry( i, true, MENU_AUTOASSIGN, - char_has_trait ? entry_name + " *" : entry_name - ); + trait->variants.empty() ? mutation_name( trait ) + has_it : trait->name() + has_it ); } }; @@ -2415,7 +2414,12 @@ void Character::customize_appearance( customize_appearance_choice choice ) if( has_trait( current_trait ) ) { remove_mutation( current_trait ); } - set_mutation( trait_selected ); + if( !trait_selected->variants.empty() ) { + const mutation_variant *variant = trait_selected->pick_variant_menu(); + set_mutation( trait_selected, variant ); + } else { + set_mutation( trait_selected ); + } if( one_in( 3 ) ) { add_msg( m_neutral, end_message ); }