diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/server/tf/tf_wartracker.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/server/tf/tf_wartracker.h')
| -rw-r--r-- | game/server/tf/tf_wartracker.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/game/server/tf/tf_wartracker.h b/game/server/tf/tf_wartracker.h new file mode 100644 index 0000000..5ea67ab --- /dev/null +++ b/game/server/tf/tf_wartracker.h @@ -0,0 +1,76 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Tracker for War Data on a player +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef TF_SPYENGY_WARTRACKER_H +#define TF_SPYENGY_WARTRACKER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "tf_wardata.h" +#include "shared_object_tracker.h" + +class CTFplayer; + +//--------------------------------------------------------------------- +// Purpose: Tracks kills between Team Engineer and Team Spy in the 2014 +// war. Players are considered Team Engineer if they are wearing +// the special Engy Hat or are unallied and playing as Engy. +// Visa versa, players are considered to be on Team Spy if they +// are wearing the special Spy Hat or are unallied and playing +// as Spy. +//--------------------------------------------------------------------- +class CTFWarTracker : public CBaseSOTracker, public CGameEventListener +{ + DECLARE_CLASS( CTFWarTracker, CBaseSOTracker ) +public: + CTFWarTracker( const CSharedObject* pItem, CSteamID SteamIDOwner, CSOTrackerManager* pManager ); + + virtual void FireGameEvent( IGameEvent *pEvent ) OVERRIDE; + + virtual void CommitChangesToDB() OVERRIDE; + virtual void OnUpdate() OVERRIDE {} + virtual void OnRemove() OVERRIDE {} +private: + + static const int m_kPointsPerKill = 5; + static const int m_kBonusPointsPerKill = 2; + CGCMsgGC_War_IndividualUpdate m_ProtoData; +}; + +//--------------------------------------------------------------------- +// Purpose: Contains all the trackers for wars for each player. Tells +// individual trackers to update the GC every m_kflThinkInterval +// seconds, defined below. +//--------------------------------------------------------------------- +class CTFWarTrackerManager : public CSOTrackerManager +{ + DECLARE_CLASS( CTFWarTrackerManager, CSOTrackerManager ) +public: + CTFWarTrackerManager(); + + virtual SOTrackerMap_t::KeyType_t GetKeyForObjectTracker( const CSharedObject* pItem, CSteamID steamIDOwner ) OVERRIDE; + +private: +#ifdef GAME_DLL + void SendMessageForCommit( const ::google::protobuf::Message* pProtoMessage ) const; +#endif + virtual int GetType() const OVERRIDE { return CWarData::k_nTypeID; } + virtual const char* GetName() const { return "WarTrackerManager"; } + virtual CFmtStr GetDebugObjectDescription( const CSharedObject* pItem ) const; + virtual CBaseSOTracker* AllocateNewTracker( const CSharedObject* pItem, CSteamID steamIDOwner, CSOTrackerManager* pManager ) const OVERRIDE; + virtual ::google::protobuf::Message* AllocateNewProtoMessage() const OVERRIDE; + virtual void OnCommitRecieved( const ::google::protobuf::Message* pProtoMsg ) OVERRIDE; + virtual bool ShouldTrackObject( const CSteamID & steamIDOwner, const CSharedObject *pObject ) const OVERRIDE; + virtual int CompareRecords( const ::google::protobuf::Message* pNewProtoMsg, const ::google::protobuf::Message* pExistingProtoMsg ) const OVERRIDE; + +}; + +CTFWarTrackerManager* GetWarTrackerManager(); + +#endif // TF_SPYENGY_WARTRACKER_H + |