struct IAreaManager { };
IEntitySystem.h
virtual ~IAreaManager();
Registers EventListener to the AreaManager.
virtual void AddEventListener(IAreaManagerEventListener * pListener) = 0;
virtual void DrawLinkedAreas(EntityId linkedId) const = 0;
virtual void ExitAllAreas(IEntity const* const pEntity) = 0;
Passed in entity exits all areas. Meant for when players are killed.
virtual IArea const* const GetArea(size_t const nAreaIndex) const = 0;
virtual size_t GetAreaAmount() const = 0;
Returns true if the array was large enough, or false if there was more then outAndMaxResults attached to the entity
Query areas linked to other entities (these links are shape links) fills out a list of entities and sets outAndMaxResults to the size of results
virtual size_t GetOverlappingAreas(const AABB& bb, PodArray<IArea*>& list) const = 0;
virtual void MarkEntityForUpdate(EntityId const nEntityID) = 0;
Puts the passed entity ID into the update list for the next update.
virtual bool QueryAreas(EntityId const nEntityID, Vec3 const& vPos, SAreaManagerResult * pResults, int nMaxResults, int& rNumResults) = 0;
True on success or false on error or if provided structure was too small.
Additional Query based on position. Needs preallocated space to write nMaxResults to pResults. Returns the actual number of results written in rNumResults.
virtual bool QueryAudioAreas(Vec3 const& rPos, SAudioAreaInfo * pResults, int nMaxResults, int& rNumResults) = 0;
True on success or false on error or if provided structure was too small.
Additional Query based on position. Returns only the areas that have AudioProxies and valid AudioEnvironmentIDs. Needs preallocated space to write nMaxResults to pResults. The actual number of results filled is returned in rNumResults.
virtual void RemoveEventListener(IAreaManagerEventListener * pListener) = 0;
virtual void SetAreaDirty(IArea* pArea) = 0;
Invokes a partial recomp of the grid (faster)
virtual void SetAreasDirty() = 0;
Invokes a re-compilation of the entire area grid