//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: Load item upgrade data from KeyValues // // $NoKeywords: $ //============================================================================= #ifndef TF_UPGRADES_SHARED_H #define TF_UPGRADES_SHARED_H #ifdef CLIENT_DLL #define CTFPlayer C_TFPlayer #endif class CTFPlayer; class CMannVsMachineUpgrades { public: char szAttrib[ MAX_ATTRIBUTE_DESCRIPTION_LENGTH ]; char szIcon[ MAX_PATH ]; float flIncrement; float flCap; int nCost; int nUIGroup; int nQuality; int nTier; // If set, upgrades in the same tier - for the same player/item - will be mutually exclusive }; class CMannVsMachineUpgradeManager : public CAutoGameSystem { public: CMannVsMachineUpgradeManager(); virtual void LevelInitPostEntity(); virtual void LevelShutdownPostEntity(); void ParseUpgradeBlockForUIGroup( KeyValues *pKV, int iDefaultUIGroup ); int GetAttributeIndexByName( const char* pszAttributeName ); void LoadUpgradesFile( void ); void LoadUpgradesFileFromPath( const char *pszPath ); public: CUtlVector< CMannVsMachineUpgrades > m_Upgrades; private: CUtlMap< const char*, int > m_AttribMap; }; extern CMannVsMachineUpgradeManager g_MannVsMachineUpgrades; int GetUpgradeStepData( CTFPlayer *pPlayer, int nWeaponSlot, int nUpgradeIndex, int &nCurrentStep, bool &bOverCap ); #endif // TF_UPGRADES_H