//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: TF implementation of the IPresence interface
//
//=============================================================================

#ifndef TF_TIPS_H
#define TF_TIPS_H
#ifdef _WIN32
#pragma once
#endif

#include "tf_shareddefs.h"


struct CaptainCanteenAsset_t
{
	char szImage[ MAX_PATH ];
	float flRarity;
};

//-----------------------------------------------------------------------------
// Purpose: helper class for TF tips
//-----------------------------------------------------------------------------
class CTFTips : public CAutoGameSystem
{
public:
	CTFTips();

	virtual bool Init();
	virtual char const *Name() { return "CTFTips"; }

	const wchar_t *GetRandomTip( int &iClassUsed ); // iClassUsed will be filled in with the class that was selected
	const wchar_t *GetNextClassTip( int iClass );
	const wchar_t *GetArenaTip( void );
	const wchar_t *GetAbuseReportTip( void );
	const wchar_t *GetRandomMvMTip( int &iClassUsed ); // iClassUsed will be filled in with the class that was selected
	void GetRandomCaptainCanteenImages( const char **ppchBody, const char **ppchMisc, const char **ppchHat );

private:
	const wchar_t *GetTip( int iClass, int iTip );
	const char *GetRandomCaptainCanteenAsset( CUtlVector< CaptainCanteenAsset_t > *pAssetBucket );

	int m_iTipCount[TF_LAST_NORMAL_CLASS+1];		// how many tips there are for each class
	int m_iTipCountAll;								// how many tips there are total
	int m_iCurrentClassTip;							// index of current per-class tip
	bool m_bInited;									// have we been initialized
	int	m_iArenaTipCount;
	int m_iMvMTipCount;

	CUtlVector< CaptainCanteenAsset_t > m_CaptainCanteenBody;
	CUtlVector< CaptainCanteenAsset_t > m_CaptainCanteenMisc;
	CUtlVector< CaptainCanteenAsset_t > m_CaptainCanteenHat;
};

extern CTFTips g_TFTips;
#endif // TF_TIPS_H