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.
66 lines
1.9 KiB
66 lines
1.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose: Quickplay related code shared between GC and client
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#include "cbase.h"
|
|
#include "tf_quickplay_shared.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
extern const char k_szQuickplayFAQ_URL[] = "https://support.steampowered.com/kb_article.php?ref=2825-AFGJ-3513";
|
|
|
|
//
|
|
// MvM Missions
|
|
//
|
|
|
|
CMvMMissionSet::CMvMMissionSet() { Clear(); }
|
|
CMvMMissionSet::CMvMMissionSet( const CMvMMissionSet &x ) { m_bits = x.m_bits; }
|
|
CMvMMissionSet::~CMvMMissionSet() {}
|
|
void CMvMMissionSet::operator=( const CMvMMissionSet &x ) { m_bits = x.m_bits; }
|
|
void CMvMMissionSet::Clear() { m_bits = 0; }
|
|
bool CMvMMissionSet::operator==( const CMvMMissionSet &x ) const { return m_bits == x.m_bits; }
|
|
|
|
void CMvMMissionSet::SetMissionBySchemaIndex( int idxMission, bool flag )
|
|
{
|
|
Assert( idxMission >= 0 && idxMission < GetItemSchema()->GetMvmMissions().Count() );
|
|
uint64 mask = ( (uint64)1 << (unsigned)idxMission );
|
|
if ( flag )
|
|
m_bits |= mask;
|
|
else
|
|
m_bits &= ~mask;
|
|
}
|
|
|
|
bool CMvMMissionSet::GetMissionBySchemaIndex( int idxMission ) const
|
|
{
|
|
// Bogus index?
|
|
if ( idxMission == k_iMvmMissionIndex_NotInSchema )
|
|
return false;
|
|
if ( idxMission < 0 || idxMission >= GetItemSchema()->GetMvmMissions().Count() )
|
|
{
|
|
Assert( idxMission >= 0 );
|
|
Assert( idxMission < GetItemSchema()->GetMvmMissions().Count() );
|
|
return false;
|
|
}
|
|
|
|
// Check the bit
|
|
uint64 mask = ( (uint64)1 << (unsigned)idxMission );
|
|
return ( m_bits & mask ) != 0;
|
|
}
|
|
|
|
void CMvMMissionSet::Intersect( const CMvMMissionSet &x )
|
|
{
|
|
m_bits &= x.m_bits;
|
|
}
|
|
|
|
bool CMvMMissionSet::HasIntersection( const CMvMMissionSet &x ) const
|
|
{
|
|
return ( m_bits & x.m_bits ) != 0;
|
|
}
|
|
|
|
bool CMvMMissionSet::IsEmpty() const
|
|
{
|
|
return ( m_bits == 0 );
|
|
}
|