|
|
//========= 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
|