//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//
//=============================================================================//
#ifndef LOGICRTSMODE_H
#define LOGICRTSMODE_H

#include "cbase.h"
#include "entityinput.h"
#include "entityoutput.h"
#include "eventqueue.h"

class CLogicRTSMode : public CLogicalEntity
{
public:
	DECLARE_CLASS( CLogicRTSMode, CLogicalEntity );

	CLogicRTSMode();

	void Activate();
	void Think();

	// Input handlers
	void InputEnable( inputdata_t &inputdata );
	void InputEnableRefire( inputdata_t &inputdata );  // Private input handler, not in FGD
	void InputDisable( inputdata_t &inputdata );
	void InputToggle( inputdata_t &inputdata );
	//void InputTrigger( inputdata_t &inputdata );
	void InputCancelPending( inputdata_t &inputdata );
	void TeleportFPSRTS( string_t destination, CBasePlayer *pPlayer );

	DECLARE_DATADESC();

	// Outputs
	//COutputEvent m_OnTrigger;
	COutputEvent m_OnSpawn;
	
private:

	bool m_bDisabled;
	bool m_bWaitForRefire;			// Set to disallow a refire while we are waiting for our outputs to finish firing.

	string_t m_iDestinationRTS;
	string_t m_iDestinationFPS;

	int m_iTeamRTS;

	bool m_bHasSuit;		// the suit is disabled in rts mode, so we need to remember that we had the suit
};

#endif //LOGICRTSMODE_H
