CleverRaven/Cataclysm-DDA — pull request #1657 by Tamunshin (2013-06-19 13:21:07+00:00)
Title: Mutationfixes

Some changes to the way mutating and starting traits are handled.

Previously any change used toggle_trait, however that simultaneously changed both my_traits and my_mutations, so there wasn't really any difference between them except that start traits were listed before PF_MAX.

I've changed things around a bit:

Because of the sheer prevalence of has_trait throughout the code, I've opted to leave that as the main method of checking for mutations, however it only checks my_mutations instead of my_traits.
I've replaced has_mutation with has_base_trait which only checks my_traits.
Any traits you choose at the start are placed in both my_traits AND my_mutations, however any mutations you acquire only affect my_mutations.
You can upgrade from / downgrade to your starting traits, however they can't be removed by purifier or selected for removal by mutating normally.
The traits list in the @ menu draws only from my_mutations so you shouldn't get entries from your base traits when they've been replaced.
Fixes Issue #1612, you can gain and lose all the other traits normally now, only the ones you pick at character creation are protected.

This might break save compatibility and definitely won't work properly on existing saves