Update visibility system

*visibility updates and ai relocations processed simultaneously for each grid
  *these operations now are not synchronized for different grids
  *some changes into structure of visibility notifiers

--HG--
branch : trunk
This commit is contained in:
silver1ce
2010-02-27 15:25:14 +02:00
parent 1815d19b85
commit fcaa318fb3
18 changed files with 290 additions and 475 deletions
+3 -7
View File
@@ -98,7 +98,6 @@ enum NotifyFlags
NOTIFY_NONE = 0x00,
NOTIFY_AI_RELOCATION = 0x01,
NOTIFY_VISIBILITY_CHANGED = 0x02,
NOTIFY_PLAYER_VISIBILITY = 0x04,
NOTIFY_ALL = 0xFF
};
@@ -656,19 +655,16 @@ class WorldObject : public Object, public WorldLocation
void GetCreatureListWithEntryInGrid(std::list<Creature*>& lList, uint32 uiEntry, float fMaxSearchRange);
void DestroyForNearbyPlayers();
void UpdateObjectVisibility();
virtual void UpdateObjectVisibility(bool forced = true);
void BuildUpdate(UpdateDataMapType& );
//new relocation and visibility system functions
//relocation and visibility system functions
void AddToNotify(uint16 f) { m_notifyflags |= f;}
void RemoveFromNotify(uint16 f) { m_notifyflags &= ~f;}
bool isNeedNotify(uint16 f) const { return m_notifyflags & f;}
uint16 GetNotifyFlags() const { return m_notifyflags; }
bool NotifyExecuted(uint16 f) const { return m_executed_notifies & f;}
void SetNotified(uint16 f) { m_executed_notifies |= f;}
void ResetNotifies(uint16 f) { m_executed_notifies |= ~f;}
void ResetAllNotifies() { m_notifyflags = 0; m_executed_notifies = 0; }
void ResetAllNotifiesbyMask(uint16 f) { m_notifyflags &= ~f; m_executed_notifies &= ~f; }
bool isActiveObject() const { return m_isActive; }
void setActive(bool isActiveObject);