The Multi Feature Mod I wrote months ago is now active on the SVN. Each plot can have any number of features and all of them are displayed as graphics. To keep backward compatibility there is still a main feature and the rest are secondary features. Not all effects of features work for secondary features yet and there are likely bugs so look out for them and report.
Old code uses setFeatureType which will set that as main feature and replace any previous main feature. Similar you use getFeatureType on the plot to get the main feature.
There are new access methods for code that should be aware of secondary features (they are usable from Python):
Code:
bool getHasFeature(FeatureTypes eFeature) const;
void setHasFeature(FeatureTypes eFeature, bool bHasFeature, int iVariety = -1);
int getNumFeatures() const;
FeatureTypes getFeatureByIndex(int index) const;
int getFeatureVariety(FeatureTypes eFeature) const;
void removeAllFeatures();
While the new code stores varieties, it is actually not possible to supply different varieties for the features on the same plot so only the variety of the main feature will be used and it is recommended not to use feature varieties.
The normal way to loop through all features on a plot is to use getNumFeatures and getFeatureByIndex which also includes the main feature.
setHasFeature always sets the feature as secondary. If you need to set a main feature, use setFeatureType (and mind that it replaces the old main feature).