Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= 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
|