#ifndef _CMAINMENU_HPP_
#define _CMAINMENU_HPP_

/*** TrooperEngine DLL Header Files ***/
#include "TrooperEngine.hpp"

/*** Custom Header Files ***/
#include "eOptions.hpp"

using UtilityEngine::cString;

namespace MainMenu {
	class cMainMenu
	{
	public:
		cMainMenu();
		~cMainMenu();

		const eOptions ShowMenu();

		void OptionUp();
		void OptionDown();
		void OptionSelect();

		//Sets
		void setOption( const eOptions option = eOptions::Start );

		void setSound( const cString dir, const cString filename );

		void setColour( const SDL_Colour colour );
		void setSelectColour( const SDL_Colour selectcolour );
		void setTitleColour( const SDL_Colour titlecolour );

		void setFont( const cString dir, const cString filename );

		void setTitleText( const cString text, const long int size, const long int x, const long int y );
		void setSingleText( const cString text, const long int size, const long int x, const long int y );
		void setHeadText( const cString text, const long int size, const long int x, const long int y );
		void setQuitText( const cString text, const long int size, const long int x, const long int y );

	private:
		void ResetTextColour();

		void Display();
		void Redraw();
		void PlaySound();
		void Input();

		void SingleSelect();
		void HeadSelect();
		void QuitSelect();

	private:
		VideoEngine::cCamera* mp_camera;// = nullptr

		VideoEngine::cSprite m_titleSprite;
		VideoEngine::cSprite m_singleSprite;
		VideoEngine::cSprite m_headSprite;
		VideoEngine::cSprite m_quitSprite;

		AudioEngine::cSound m_menuSound;

		SDL_Colour m_colour;// = {255, 0, 0}
		SDL_Colour m_selectColour;// = {0, 0, 255}
		SDL_Colour m_titleColour;// = {255, 255, 255}

		TextTypeEngine::cFont* mp_font;// = nullptr

		TextTypeEngine::cText* mp_titleText;// = nullptr;
		TextTypeEngine::cText* mp_singleText;// = nullptr;
		TextTypeEngine::cText* mp_headText;// = nullptr;
		TextTypeEngine::cText* mp_quitText;// = nullptr;

		eOptions m_option;// = Start;
		bool m_run;// = true;
	};/// END CLASS DEFINITION cMainMenu
}/// END NAMESPACE DEFINITION MainMenu
#endif/// END IFNDEF _CMAINMENU_HPP_