#pragma once
#include "../UnitData.h"
#include "../Utils/ReferenceCounted.h"

class PerceptualState;
class Tracking;
class Region;
class UnitRecord;

class PerceptualStateUnitData : public virtual UnitData
{
public:
  PerceptualStateUnitData(BWAPI::Unit* unit);

  Region* getCurrentRegion() const;

  UnitRecord* getUnitRecord() const
  {
    assert(m_unitRecord != NULL);
    return m_unitRecord;
  }

protected:
  friend class Tracking;

  void instantiateUnitRecord();

  AutoPtr<UnitRecord> m_unitRecord;
};
