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.
83 lines
1.5 KiB
83 lines
1.5 KiB
//========= Copyright © 1996-2009, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=====================================================================================//
|
|
|
|
#ifndef _MM_DLC_H_
|
|
#define _MM_DLC_H_
|
|
|
|
#include "utlvector.h"
|
|
#include "utlmap.h"
|
|
|
|
class CDlcManager :
|
|
public IDlcManager,
|
|
public IMatchEventsSink
|
|
{
|
|
public :
|
|
CDlcManager();
|
|
virtual ~CDlcManager();
|
|
|
|
//
|
|
// IDlcManager implementation
|
|
//
|
|
public:
|
|
//
|
|
// RequestDlcUpdate
|
|
// requests a background DLC update
|
|
//
|
|
virtual void RequestDlcUpdate();
|
|
virtual bool IsDlcUpdateFinished( bool bWaitForFinish = false );
|
|
|
|
//
|
|
// GetDataInfo
|
|
// retrieves the last acquired dlc information
|
|
//
|
|
virtual KeyValues * GetDataInfo();
|
|
|
|
//
|
|
// IMatchEventsSink implementation
|
|
//
|
|
public:
|
|
virtual void OnEvent( KeyValues *kvEvent );
|
|
|
|
//
|
|
// Interface for match system
|
|
//
|
|
public:
|
|
void Update();
|
|
|
|
protected:
|
|
KeyValues *m_pDataInfo;
|
|
|
|
#ifdef _X360
|
|
HANDLE m_hEnumerator;
|
|
XOVERLAPPED m_xOverlapped;
|
|
int32 m_dwNumItems;
|
|
DWORD m_dwLicenseMask;
|
|
CUtlVector< XCONTENT_DATA > m_arrContentData;
|
|
void CreateNextContent();
|
|
void ProcessNextContent();
|
|
#endif
|
|
|
|
#if !defined( NO_STEAM ) && !defined( SWDS )
|
|
STEAM_CALLBACK_MANUAL( CDlcManager, Steam_OnDLCInstalled, DlcInstalled_t, m_CallbackOnDLCInstalled );
|
|
#endif
|
|
|
|
enum State_t
|
|
{
|
|
STATE_IDLE,
|
|
#ifdef _X360
|
|
STATE_XENUMERATE,
|
|
STATE_XCONTENT_CREATE
|
|
#endif
|
|
};
|
|
State_t m_eState;
|
|
bool m_bNeedToDiscoverAllDlcs;
|
|
bool m_bNeedToUpdateFileSystem;
|
|
float m_flTimestamp;
|
|
};
|
|
|
|
extern class CDlcManager *g_pDlcManager;
|
|
|
|
#endif // _DATACENTER_H_
|