																																																																
#pragma once

#include "MW4.hpp"
#include "hudcomp.hpp"
#include <Adept\AudioCommand.hpp>
#include <Adept\AudioRenderer.hpp>
#include "lancemate.hpp"

namespace MechWarrior4
{
	class HUDComm : public HUDComponent
	{
	protected:

		typedef HUDComponent inherited;

//		stlport::vector<AI *> m_Lancemates;
		stlport::vector<HUDText *> m_LanceCommands;
		stlport::vector<HUDText *> m_LanceName;
		stlport::vector<HUDText *> m_LanceMech;
		int m_AnimLoc;
		Stuff::Time m_AnimTime;
		int m_ActiveLancemate;
		int Lancemate_Line_Size;

//		Stuff::Time m_VideoTime;
//		int m_VideoFrame;
//		bool m_PlayingVideo;
		int m_WhoTalking;
		SlotOf <AudioCommand *> m_CurAudio;

		void DrawImplementation(void);
		void ClearLancemates (void);
		bool IsTalker (LancematePlug *plug);

	public:
		HUDComm();
		~HUDComm();
		virtual void Reset (void);
		virtual void Update (Stuff::Time till);
		void SetupLancemates (void);

		void PlayVideo (int person,AudioCommand *command);
		void StopVideo (void);

		void SelectLancemate (int index)
		{ if (index == m_ActiveLancemate)
				m_ActiveLancemate = -1;
			else
				m_ActiveLancemate = index;
		}
		void SelectAllLancemates (void)
		{ m_ActiveLancemate = -2; }
		void DeselectLancemate (void)
		{ m_ActiveLancemate = -1; }
		bool LancemateSelected (void) const
		{ return m_ActiveLancemate != -1; }
//		int NumLancemates (void) const
//		{ return m_Lancemates.size (); }
		Scalar BottomY (void) const;
	};
}
