Psychonic mentioned the existence of the a struct in the TF2 server binary called TFPlayerClassData_t, I went ahead and reversed it and found some thing that may be of interest to others.
I threw everything into a quick extension which provides SM plugins with a bunch of natives for editting class data as an example of what can be done with the data contained in the struct.
The code can be found here, along with some SM files and compiled binaries
http://hg.paulclothier.com/TF2_PlayerClassData/
Here is the struct, to save you from having to look through the files above
PHP Code:
struct TFPlayerClassData_t // 1256
{
char m_szName[128]; // +0
char m_szModel[128]; // +128
char m_szModelHWM[128]; // +256
char m_szModelHands[128]; // +384
char m_szLocalizedName[128]; // +512
float m_flMaxSpeed; // +640
uint32 m_iMaxHealth; // +644
uint32 m_iMaxArmor; // +648
uint32 m_iWeaponID[5]; // +652
uint32 m_iGrenadeID[2]; // +672
char m_padding0[4]; // +680
uint32 m_iMaxAmmo[5]; // +684
uint32 m_iBuildableID[6]; // +704
bool m_bDontDoAirWalk; // +728
bool m_bDontDoNewJump; // +729
bool m_bInitialized; // +730
float m_flCameraOffsetForward; // +732
float m_flCameraOffsetRight; // +736
float m_flCameraOffsetUp; // +740
char m_szDeathSound[128]; // +744
char m_szCritDeathSound[128]; // +872
char m_szMeleeDeathSound[128]; // +1000
char m_szExplosionDeathSound[128]; // +1128
};
Why am I posting this here? The extension has not been fully tested and I have little desire to support it, anyone it welcome to take it and post it in the extension forum if they are willing to support it themselves.