float MoonInstanceScript::GetRangeToObject(Object* pObject, float pX, float pY, float pZ) { if(pObject == NULL) return 0.0f; return GetRangeToObject(pObject->GetPositionX(), pObject->GetPositionY(), pObject->GetPositionZ(), pX, pY, pZ); }
float MoonInstanceScript::GetRangeToObject(Object* pObjectA, Object* pObjectB) { if(pObjectA == NULL || pObjectB == NULL) return 0.0f; return GetRangeToObject(pObjectA->GetPositionX(), pObjectA->GetPositionY(), pObjectA->GetPositionZ(), pObjectB->GetPositionX(), pObjectB->GetPositionY(), pObjectB->GetPositionZ()); }
float MapManagerScript::GetRangeToObject( Object *pObjectA, Object *pObjectB ) { if ( pObjectA == NULLOBJ || pObjectB == NULLOBJ ) return 0.0f; return GetRangeToObject( pObjectA->GetPositionX(), pObjectA->GetPositionY(), pObjectA->GetPositionZ(), pObjectB->GetPositionX(), pObjectB->GetPositionY(), pObjectB->GetPositionZ() ); }
Creature* MoonInstanceScript::FindClosestCreatureOnMap(uint32 pEntry, float pX, float pY, float pZ) { CreatureSet Creatures = FindCreaturesOnMap(pEntry); if(Creatures.size() == NULL) return NULL; if(Creatures.size() == 1) return *(Creatures.begin()); Creature* NearestCreature = NULL; float Distance, NearestDistance = 99999; for(CreatureSet::iterator Iter = Creatures.begin(); Iter != Creatures.end(); ++Iter) { Distance = GetRangeToObject(*Iter, pX, pY, pZ); if(Distance < NearestDistance) { NearestDistance = Distance; NearestCreature = (*Iter); } } return NearestCreature; }
GameObject* MoonInstanceScript::FindClosestGameObjectOnMap(uint32 pEntry, float pX, float pY, float pZ) { GameObjectSet GameObjects = FindGameObjectsOnMap(pEntry); if(GameObjects.size() == NULL) return NULL; if(GameObjects.size() == 1) return *(GameObjects.begin()); GameObject* NearestObject = NULL; float Distance, NearestDistance = 99999; for(GameObjectSet::iterator Iter = GameObjects.begin(); Iter != GameObjects.end(); ++Iter) { Distance = GetRangeToObject(*Iter, pX, pY, pZ); if(Distance < NearestDistance) { NearestDistance = Distance; NearestObject = (*Iter); } } return NearestObject; }