//////////////////////////////////////////////////////////////////////////////
//
// ToolsAVP_Cutscene_Event_SetVisionMode.h
//
// Created by Ali Jakamy 25/06/2008
//
// Copyright (c) 2008 Rebellion. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __TOOLSAVP_CUTSCENE_EVENT_SETVISIONMODE_H__
#define __TOOLSAVP_CUTSCENE_EVENT_SETVISIONMODE_H__

// ASURA
#include "Core/Asura_Maths.h"

// Tools
#include "Cutscene/Tools_Cutscene_Event.h"
#include "Interface/Asura_Dialog.h"

//
// CLASS ToolsAVP_Cutscene_Event_SetVisionMode
//
class ToolsAVP_Cutscene_Event_SetVisionMode : public Tools_Cutscene_Event
{
public :

	ToolsAVP_Cutscene_Event_SetVisionMode(Asura_Cutscene_Event* pxEvent,Tools_Cutscene_Object* pxCutsceneObject, int iEventID);

	virtual const char*  GetTypeDescription(){ return "Set vision mode"; }
	virtual const char*  GetAbbreviatedTypeDescription(){ return "Vision"; }
	virtual Asura_String GetDescription(){ 	return "Set Vision Mode"; }

	virtual void AddOverlayControls(Asura_Overlay* pxOverlay, Asura_Vector_2& xOffset);
	virtual void UpdateBackupVariables();
	
	// Accessors
	Asura_Hash_ID GetVisionModeHashBackup() const { return m_uVisionModeHashBackup; }
	float         GetDurationBackup() const { return m_fDurationBackup; }
	u_int         GetFlagsBackup() const { return m_uFlagsBackup; }

private :

	enum
	{
		NUM_VISION_MODES_DISPLAYED = 8
	};

	Asura_Hash_ID m_uVisionModeHashBackup;
	float         m_fDurationBackup;
	u_int         m_uFlagsBackup;

	typedef Tools_Cutscene_Event PARENT;

};

//
// CLASS ToolsAVP_SetVisionMode_Event_DropDownList_Dialog
//
class ToolsAVP_SetVisionMode_Event_DropDownList_Dialog : public Asura_Hash_DropDownList_Dialog
{
public:

	ToolsAVP_SetVisionMode_Event_DropDownList_Dialog( const Asura_Vector_2& xOffset, const int iNumberOfLines, Asura_Hash_ID* puSelected, bool* pbChangedFlag, const char* szName);
	
	virtual u_int GetNumberOfHashValues() const;
	virtual const char* GetNameByIndex(int iIndex) const;

protected:

	virtual bool GetAllowNoneEntry() const { return false; }

private :

    typedef Asura_Hash_DropDownList_Dialog PARENT;
};


#endif // #ifndef __TOOLSAVP_CUTSCENE_EVENT_SETVISIONMODE_H__