diff options
Diffstat (limited to 'indra/newview/llworld.cpp')
| -rwxr-xr-x[-rw-r--r--] | indra/newview/llworld.cpp | 24 | 
1 files changed, 22 insertions, 2 deletions
| diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index 09d17b3701..7996f8a640 100644..100755 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -274,7 +274,9 @@ void LLWorld::removeRegion(const LLHost &host)  	mActiveRegionList.remove(regionp);  	mCulledRegionList.remove(regionp);  	mVisibleRegionList.remove(regionp); -	 + +	mRegionRemovedSignal(regionp); +  	delete regionp;  	updateWaterObjects(); @@ -402,6 +404,19 @@ LLViewerRegion* LLWorld::getRegionFromHandle(const U64 &handle)  	return NULL;  } +LLViewerRegion* LLWorld::getRegionFromID(const LLUUID& region_id) +{ +	for (region_list_t::iterator iter = mRegionList.begin(); +		 iter != mRegionList.end(); ++iter) +	{ +		LLViewerRegion* regionp = *iter; +		if (regionp->getRegionID() == region_id) +		{ +			return regionp; +		} +	} +	return NULL; +}  void LLWorld::updateAgentOffset(const LLVector3d &offset_global)  { @@ -1192,7 +1207,7 @@ void LLWorld::getAvatars(uuid_vec_t* avatar_ids, std::vector<LLVector3d>* positi  	{  		LLVOAvatar* pVOAvatar = (LLVOAvatar*) *iter; -		if (!pVOAvatar->isDead() && !pVOAvatar->isSelf() && !pVOAvatar->mIsDummy) +		if (!pVOAvatar->isDead() && !pVOAvatar->mIsDummy)  		{  			LLVector3d pos_global = pVOAvatar->getPositionGlobal();  			LLUUID uuid = pVOAvatar->getID(); @@ -1244,6 +1259,11 @@ bool LLWorld::isRegionListed(const LLViewerRegion* region) const  	return it != mRegionList.end();  } +boost::signals2::connection LLWorld::setRegionRemovedCallback(const region_remove_signal_t::slot_type& cb) +{ +	return mRegionRemovedSignal.connect(cb); +} +  LLHTTPRegistration<LLEstablishAgentCommunication>  	gHTTPRegistrationEstablishAgentCommunication(  							"/message/EstablishAgentCommunication"); | 
