diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-01-08 15:57:33 -0800 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-01-08 15:57:33 -0800 | 
| commit | 6aa46cc53f060c43781c95351df0e32ffdd0b75d (patch) | |
| tree | ad84c6c50acf170090f3262939f9e134949bb940 | |
| parent | e827c8a5ebed4eef1e8debfd9d61f727be639f04 (diff) | |
EXT-4026 parcel media does not autoplay after arriving by teleport
| -rw-r--r-- | indra/newview/llviewerparcelmediaautoplay.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llviewerparcelmediaautoplay.h | 2 | 
2 files changed, 17 insertions, 1 deletions
| diff --git a/indra/newview/llviewerparcelmediaautoplay.cpp b/indra/newview/llviewerparcelmediaautoplay.cpp index 1b79b47905..ad2723b66b 100644 --- a/indra/newview/llviewerparcelmediaautoplay.cpp +++ b/indra/newview/llviewerparcelmediaautoplay.cpp @@ -35,6 +35,7 @@  #include "llviewerparcelmedia.h"  #include "llviewercontrol.h"  #include "llviewermedia.h" +#include "llviewerregion.h"  #include "llparcel.h"  #include "llviewerparcelmgr.h"  #include "lluuid.h" @@ -48,6 +49,8 @@ const F32 AUTOPLAY_SPEED = 0.1f;        // how slow should the agent be moving t  LLViewerParcelMediaAutoPlay::LLViewerParcelMediaAutoPlay() :  	LLEventTimer(1), +	 +	mLastParcelID(-1),  	mPlayed(FALSE),  	mTimeInParcel(0)  { @@ -81,9 +84,18 @@ void LLViewerParcelMediaAutoPlay::playStarted()  BOOL LLViewerParcelMediaAutoPlay::tick()  {  	LLParcel *this_parcel = NULL; +	LLViewerRegion *this_region = NULL;  	std::string this_media_url;  	LLUUID this_media_texture_id;  	S32 this_parcel_id = 0; +	LLUUID this_region_id; + +	this_region = gAgent.getRegion(); +	 +	if (this_region) +	{ +		this_region_id = this_region->getRegionID(); +	}  	this_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); @@ -96,12 +108,14 @@ BOOL LLViewerParcelMediaAutoPlay::tick()  		this_parcel_id = this_parcel->getLocalID();  	} -	if (this_parcel_id != mLastParcelID) +	if (this_parcel_id != mLastParcelID || +	    this_region_id != mLastRegionID)  	{  		// we've entered a new parcel  		mPlayed    = FALSE;                   // we haven't autoplayed yet  		mTimeInParcel = 0;                    // reset our timer  		mLastParcelID = this_parcel_id; +		mLastRegionID = this_region_id;  	}  	mTimeInParcel += mPeriod;                 // increase mTimeInParcel by the amount of time between ticks diff --git a/indra/newview/llviewerparcelmediaautoplay.h b/indra/newview/llviewerparcelmediaautoplay.h index 16279e7f1f..1d80b4756c 100644 --- a/indra/newview/llviewerparcelmediaautoplay.h +++ b/indra/newview/llviewerparcelmediaautoplay.h @@ -34,6 +34,7 @@  #define LLVIEWERPARCELMEDIAAUTOPLAY_H  #include "lltimer.h" +#include "lluuid.h"  // timer to automatically play media  class LLViewerParcelMediaAutoPlay : LLEventTimer @@ -47,6 +48,7 @@ class LLViewerParcelMediaAutoPlay : LLEventTimer   private:  	S32 mLastParcelID; +	LLUUID mLastRegionID;  	BOOL mPlayed;  	F32 mTimeInParcel;  }; | 
