hl2_src-leak-2017/src/game/server/tf/tf_objective_resource.h

110 lines
4.9 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: DOD's objective resource, transmits all objective states to players
//
// $NoKeywords: $
//=============================================================================//
#ifndef TF_OBJECTIVE_RESOURCE_H
#define TF_OBJECTIVE_RESOURCE_H
#ifdef _WIN32
#pragma once
#endif
#include "tf_shareddefs.h"
#include "team_objectiveresource.h"
class CTFObjectiveResource : public CBaseTeamObjectiveResource
{
DECLARE_CLASS( CTFObjectiveResource, CBaseTeamObjectiveResource );
public:
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
CTFObjectiveResource();
~CTFObjectiveResource();
virtual void Spawn( void );
void SetMannVsMachineMaxWaveCount( int nCount ) { m_nMannVsMachineMaxWaveCount = nCount; }
int GetMannVsMachineMaxWaveCount( void ) { return m_nMannVsMachineMaxWaveCount; }
void SetMannVsMachineWaveCount( int nCount ) { m_nMannVsMachineWaveCount = nCount; }
int GetMannVsMachineWaveCount( void ) { return m_nMannVsMachineWaveCount; }
void SetMannVsMachineWaveEnemyCount( int nCount ) { m_nMannVsMachineWaveEnemyCount = nCount; }
int GetMannVsMachineWaveEnemyCount( void ) { return m_nMannVsMachineWaveEnemyCount.Get(); }
void AddMvMWorldMoney( int nCurrency ) { m_nMvMWorldMoney += nCurrency; }
void SetMannVsMachineNextWaveTime( float flTime ) { m_flMannVsMachineNextWaveTime = flTime; }
void SetMannVsMachineBetweenWaves( bool bVal ) { m_bMannVsMachineBetweenWaves = bVal; }
bool GetMannVsMachineIsBetweenWaves( void ) { return m_bMannVsMachineBetweenWaves; }
void SetMannVsMachineWaveClassCount( int nIndex, int nCount );
void SetMannVsMachineWaveClassName( int nIndex, string_t iszClassIconName );
void IncrementMannVsMachineWaveClassCount( string_t iszClassIconName, unsigned int iFlags );
void DecrementMannVsMachineWaveClassCount( string_t iszClassIconName, unsigned int iFlags );
void IncrementTeleporterCount();
void DecrementTeleporterCount();
int GetMannVsMachineWaveClassCount( int nIndex );
void SetMannVsMachineWaveClassActive( string_t iszClassIconName, bool bActive = true );
string_t GetMannVsMachineWaveClassName( int nIndex ) { return m_iszMannVsMachineWaveClassNames[ nIndex ]; }
void ClearMannVsMachineWaveClassFlags( void );
void AddMannVsMachineWaveClassFlags( int nIndex, unsigned int iFlags );
unsigned int GetMannVsMachineWaveClassFlags( int nIndex ) { return m_nMannVsMachineWaveClassFlags[ nIndex ]; }
void SetFlagCarrierUpgradeLevel( int nLevel ){ m_nFlagCarrierUpgradeLevel = nLevel; }
int GetFlagCarrierUpgradeLevel( void ){ return m_nFlagCarrierUpgradeLevel; }
void SetBaseMvMBombUpgradeTime( float nTime ){ m_flMvMBaseBombUpgradeTime = nTime; }
float GetBaseMvMBombUpgradeTime( void ){ return m_flMvMBaseBombUpgradeTime; }
void SetNextMvMBombUpgradeTime( float nTime ){ m_flMvMNextBombUpgradeTime = nTime; }
float GetNextMvMBombUpgradeTime( void ) { return m_flMvMNextBombUpgradeTime; }
void SetMannVsMachineChallengeIndex( int iIndex ) { m_iChallengeIndex = iIndex; }
int GetMannVsMachineChallengeIndex( void ) { return m_iChallengeIndex; }
void SetMvMPopfileName( string_t iszMvMPopfileName ) { m_iszMvMPopfileName = iszMvMPopfileName; }
string_t GetMvMPopfileName( void ) const { return m_iszMvMPopfileName.Get(); }
void SetMannVsMachineEventPopfileType( int nType ){ m_nMvMEventPopfileType.Set( nType ); }
string_t GetTeleporterString() const { return m_teleporterString; }
private:
CNetworkVar( int, m_nMannVsMachineMaxWaveCount );
CNetworkVar( int, m_nMannVsMachineWaveCount );
CNetworkVar( int, m_nMannVsMachineWaveEnemyCount );
CNetworkVar( int, m_nMvMWorldMoney );
CNetworkVar( float, m_flMannVsMachineNextWaveTime );
CNetworkVar( bool, m_bMannVsMachineBetweenWaves );
CNetworkArray( int, m_nMannVsMachineWaveClassCounts, MVM_CLASS_TYPES_PER_WAVE_MAX );
CNetworkArray( int, m_nMannVsMachineWaveClassCounts2, MVM_CLASS_TYPES_PER_WAVE_MAX );
CNetworkArray( string_t, m_iszMannVsMachineWaveClassNames, MVM_CLASS_TYPES_PER_WAVE_MAX );
CNetworkArray( string_t, m_iszMannVsMachineWaveClassNames2, MVM_CLASS_TYPES_PER_WAVE_MAX );
CNetworkArray( unsigned int, m_nMannVsMachineWaveClassFlags, MVM_CLASS_TYPES_PER_WAVE_MAX );
CNetworkArray( unsigned int, m_nMannVsMachineWaveClassFlags2, MVM_CLASS_TYPES_PER_WAVE_MAX );
CNetworkArray( bool, m_bMannVsMachineWaveClassActive, MVM_CLASS_TYPES_PER_WAVE_MAX );
CNetworkArray( bool, m_bMannVsMachineWaveClassActive2, MVM_CLASS_TYPES_PER_WAVE_MAX );
CNetworkVar( int, m_nFlagCarrierUpgradeLevel );
CNetworkVar( float, m_flMvMBaseBombUpgradeTime );
CNetworkVar( float, m_flMvMNextBombUpgradeTime );
CNetworkVar( int, m_iChallengeIndex );
CNetworkVar( string_t, m_iszMvMPopfileName ) ;
CNetworkVar( int, m_nMvMEventPopfileType );
string_t m_teleporterString;
};
inline CTFObjectiveResource *TFObjectiveResource()
{
return static_cast< CTFObjectiveResource *>( g_pObjectiveResource );
}
#endif // TF_OBJECTIVE_RESOURCE_H