This is nice, however is there any difference between setting m_iClass instead of TF2_SetPlayerClass?
Currently Regenerating a player after SetPlayerClass has weird effects, like visually setting the player to that class but some times not their health (however the max health changes) and some of the wearables that are for all classes. I.e. spy wearing heavy's Triad Trinket.
Setting m_iClass doesn't trigger the class change event.
I was gonna say including tf2_stocks and adding TF2_SetPlayerClass makes the code look a lot neater.