//
// Tool_MetaMusicZone_Editor.h
//
// Created by Richard Rice - 26/01/05
// 
// Copyright (C) 2005 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __TOOLS_METAMUSICZONE_EDITOR_H__
#define __TOOLS_METAMUSICZONE_EDITOR_H__

#include "Core/Asura_Hash.h"
#include "Zone/Tools_Zone_Editor.h"

class Tools_MetaMusicZone_Editor : public Tools_Zone_Editor
{
public :
	Tools_MetaMusicZone_Editor(class Asura_Zone_Controller* pxController);
	~Tools_MetaMusicZone_Editor();

    virtual void Update();
	virtual void SetModified();

	//adds the controls for the activate/deactive zone messages
	static void ZoneMessage_AddOverlayControls(struct Asura_StaticMessage* pxMessage,class Asura_Overlay* pxOverlay,class Asura_Vector_2& xOffset);


protected :
	virtual const char* GetTitle(){return "Meta Music Zones";}

	virtual void AddOverlayControls(class Asura_Overlay* pxOverlay,Asura_Vector_2& xOffset);

	//add main zone editing controls
	virtual void AddZoneOverlayControls(class Asura_Overlay* pxOverlay,Asura_Vector_2& xOffset);
    virtual bool AllowDefaultZones() { return false; }

protected:
    static void _SelectMusicTrack( int iTrigger ) { s_pxThis->SelectMusicTrack(iTrigger); }
    void SelectMusicTrack(int iTrigger);
	const char* GetTrackName( Asura_Hash_ID uTrackID ) const;

	static void SelectZoneForMessage(int iData);

	static bool IsEnabled_SelectTrack(int iTrigger);


	bool m_bChanged;
	bool m_bNPCWarningShown;
	u_int m_uFlagsBackup[2];

	static Tools_MetaMusicZone_Editor* s_pxThis;

};

#endif // __TOOLSRT_METAMUSICZONE_EDITOR_H__
