
#ifndef AI_GRAVEYARD_HPP
#define AI_GRAVEYARD_HPP

#include <Adept\Entity.hpp>
#pragma warning(push)
#include <stlport\vector>
#pragma warning(pop)


namespace MW4AI
{
	class Graveyard;

	class Grave
	{
	  public:
		Grave(Adept::ObjectID _id,
			  Adept::ObjectID _destroyer,
			  Stuff::Scalar _time_of_death)
		  : id(_id)
		  , destroyer(_destroyer)
		  , time_of_death(_time_of_death)
		{
		}

		friend class Graveyard;

		Adept::ObjectID id;
		Adept::ObjectID destroyer;
		Stuff::Scalar time_of_death;
	};

	typedef std::vector<Grave> grave_list;

	class Graveyard
	{
	  public:
		Graveyard();
		~Graveyard();

		void NotifyCreated(Adept::ObjectID id);
		void NotifyDeceased(Adept::ObjectID id,
							Adept::ObjectID destroyer,
							Stuff::Scalar time_of_death);

		const grave_list& GetGraves() const;

	  private:
		grave_list m_Graves;

	  private:	// prevent copying
		Graveyard(const Graveyard&);
		Graveyard& operator=(const Graveyard&);
	};
};



#endif // MWOBITUARY