struct ISmartObjectManager { };
IAgent.h
virtual ~ISmartObjectManager();
virtual void AddSmartObjectState(IEntity* pEntity, const char* sState) = 0;
virtual bool CheckSmartObjectStates(const IEntity* pEntity, const char* patternStates) const = 0;
virtual void DrawSOClassTemplate(IEntity* pEntity) = 0;
TODO make const
virtual SmartObjectHelper* GetSmartObjectHelper(const char* className, const char* helperName) const = 0;
virtual const char* GetSmartObjectStateName(int id) const = 0;
virtual uint32 GetSOClassTemplateIStatObj(IEntity* pEntity, IStatObjPtr* ppStatObjects, uint32& numAllocStatObjects) = 0;
TODO make this const at some point if possible
virtual void ModifySmartObjectStates(IEntity* pEntity, const char* listStates) = 0;
virtual void RegisterSmartObjectState(const char* sStateName) = 0;
virtual void ReloadSmartObjectRules() = 0;
virtual void RemoveSmartObject(IEntity * pEntity) = 0;
virtual void RemoveSmartObjectState(IEntity* pEntity, const char* sState) = 0;
virtual void SetSmartObjectState(IEntity* pEntity, const char* sStateName) = 0;
virtual bool ValidateSOClassTemplate(IEntity* pEntity) = 0;
TODO make const
typedef IStatObj* IStatObjPtr;