//======= Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose: CTF Flag Capture Zone.
//
//=============================================================================//
#ifndef FUNC_CAPTURE_ZONE_H
#define FUNC_CAPTURE_ZONE_H
#ifdef _WIN32
#pragma once
#endif

#include "triggers.h"

//=============================================================================
//
// CTF Flag Capture Zone class.
//
class CCaptureZone : public CBaseTrigger
{
	DECLARE_CLASS( CCaptureZone, CBaseTrigger );

public:
	DECLARE_SERVERCLASS();

	void	Spawn();
	void	Touch( CBaseEntity *pOther );

	bool	IsDisabled( void );
	void	SetDisabled( bool bDisabled );

	// Input handlers
	void	InputEnable( inputdata_t &inputdata );
	void	InputDisable( inputdata_t &inputdata );

	int		UpdateTransmitState( void );

private:

	bool			m_bDisabled;		// Enabled/Disabled?
	
	int				m_nCapturePoint;	// Used in non-CTF maps to identify this capture point

	COutputEvent	m_outputOnCapture;	// Fired a flag is captured on this point.

	DECLARE_DATADESC();

	float			m_flNextTouchingEnemyZoneWarning;	// don't spew warnings to the player who is touching the wrong cap
};

#endif // FUNC_CAPTURE_ZONE_H