Team Colors Do Not Switch Teams
If you have an enemy team color set (in my case orange) and you switch teams, your team mates will be the color set for enemies and your enemies will be their normal team color.
I applied a fix for this issue specifically with the use of "changeteams" command. The assumption was that the "cl_team" CVAR callback would be called and player color translations would be rebuilt. However, the cvar_t::Set function doesn't initiate the callback.
Sean, your commit introduces a new issue. If an enemy's color's RGB values are all the same, it will not show the correct color. For instance, I use all 3 sliders set to max so that the enemy appears white. Now, they appear red. If I change the values in any way so that all 3 do not match, it will show the correct forced color.
The previous code was hard-coding the saturation for the blended color at 100% saturation. That lead to wonky results when r_enemycolor was set to a gray-ish hue but was especially evident when set to a color where the saturation value was 0%, like "FF FF FF". The revised code now uses the base color's saturation and hue and only affects the intensity of the color.
Tested and can confirm that commit a776835 has resolved the issue. Thanks Sean!
This Pull request should fix the problem noticed : https://github.com/odamex/odamex/pull/64