Changeset 267 for trunk/src/game/GridNotifiers.h
- Timestamp:
- 11/21/08 16:54:14 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/GridNotifiers.h
r266 r267 702 702 { 703 703 public: 704 explicit NearestHostileUnitInAttackDistanceCheck(Creature * creature, float dist = 0) : m_creature(creature)704 explicit NearestHostileUnitInAttackDistanceCheck(Creature const* creature, float dist = 0) : m_creature(creature) 705 705 { 706 706 m_range = (dist == 0 ? 9999 : dist); … … 709 709 bool operator()(Unit* u) 710 710 { 711 if(!u->isAlive() || !m_creature->IsHostileTo(u)) 712 return false; 713 714 float dist; 715 if(m_force) dist = m_range; 711 // TODO: addthreat for every enemy in range? 712 if(!m_creature->IsWithinDistInMap(u, m_range)) 713 return false; 714 715 if(m_force) 716 { 717 if(!m_creature->canAttack(u)) 718 return false; 719 } 716 720 else 717 721 { 718 dist = m_creature->GetAttackDistance(u);719 if(dist > m_range) dist = m_range;722 if(!m_creature->canStartAttack(u)) 723 return false; 720 724 } 721 if(!m_creature->IsWithinDistInMap(u, dist))722 return false;723 724 if(!m_creature->canSeeOrDetect(u, true, false))725 return false;726 725 727 726 m_range = m_creature->GetDistance(u); … … 730 729 float GetLastRange() const { return m_range; } 731 730 private: 732 Creature * constm_creature;731 Creature const *m_creature; 733 732 float m_range; 734 733 bool m_force;