Esempio n. 1
0
bool
xDistributedInteger::updateValue(TNL::S32 value,xTimeType currentTime)
{
	mLastTime = mCurrentTime;
	mCurrentTime = currentTime;
	mLastDeltaTime = mCurrentTime - mLastTime;
	
	mLastValue = mCurrentValue;
    mCurrentValue = value;
	mDifference = mCurrentValue - mLastValue;
	
	mThresoldTicker +=mLastDeltaTime;



	float lengthDiff = fabsf((float)mDifference +0.5f);

	int flags  = getFlags();
	flags =E_DP_OK;
	bool result  = false;

	if ( lengthDiff > getPredictionSettings()->getMinDifference() ) 
	{
		if (mThresoldTicker2 >  getPredictionSettings()->getMinSendTime() )
		{
			flags =E_DP_NEEDS_SEND;	
			result   = true ;
		}
	}

	float serverDiff  = (float)(mCurrentValue-mLastServerValue);

	if (  fabsf( serverDiff + .5f) > getPredictionSettings()->getMinDifference() )
	{
		if (mThresoldTicker2 > (getPredictionSettings()->getMinSendTime() * 0.2f) )
		{
			flags =E_DP_NEEDS_SEND;	
			result   = true ;
		}
	}

	if (mThresoldTicker2 >  getPredictionSettings()->getMinSendTime()  )
	{
		mThresoldTicker2  = 0 ;
		mThresoldTicker  = 0;
	}
	setFlags(flags);
	return result;
}
Esempio n. 2
0
bool
xDistributedPoint3F::updateValue(Point3F value,xTimeType currentTime)
{


	mLastTime = mCurrentTime;
	mCurrentTime = currentTime;
	mLastDeltaTime = mCurrentTime - mLastTime;
	
	mLastValue = mCurrentValue;
    mCurrentValue = value;
	mDifference = mCurrentValue - mLastValue;
	
	mThresoldTicker +=mLastDeltaTime;

	float lengthDiff = fabsf(mDifference.len());
	float timeDiffMs = ((float)mThresoldTicker) / 1000.f;
	

	

	int flags  = getFlags();
	flags =E_DP_OK;
	bool result  = false;

	if (this->getPropertyInfo()->mPredictionType == E_PTYPE_PREDICTED)
	{
		if (lengthDiff > getPredictionSettings()->getMinDifference() )
		{
			if (mThresoldTicker2 > getPredictionSettings()->getMinSendTime())
			{
				
				flags =E_DP_NEEDS_SEND;	
				result   = true ;
				

				//xLogger::xLog(ELOGINFO,XL_START,"mThresoldTicker2: %f",mThresoldTicker2);
			}
		}

		Point3F serverDiff  = mCurrentValue-mLastServerValue ;
		
		if (  fabsf( serverDiff.len()) > getPredictionSettings()->getMinDifference() )
		{
			if (mThresoldTicker2 > (getPredictionSettings()->getMinSendTime() * 0.2f) )
			{
				flags =E_DP_NEEDS_SEND;	
				result   = true ;
				//xLogger::xLog(ELOGINFO,XL_START,"mThresoldTicker2: %f",mThresoldTicker2);
			}
		}


		if (mThresoldTicker2 > getPredictionSettings()->getMinSendTime())
		{
			mThresoldTicker2  = 0 ;
			mThresoldTicker  = 0;
		}
	}

	if (getPropertyInfo()->mPredictionType == E_PTYPE_RELIABLE)
	{
		flags =E_DP_NEEDS_SEND;	
		result   = true ;
		mLastValue = value;
		mCurrentValue = value;
	}

	setFlags(flags);
	return result;
}
Esempio n. 3
0
bool
xDistributedQuatF::updateValue(QuatF value,xTimeType currentTime)
{
	bool result  = false;
	
	mLastTime = mCurrentTime;
	mCurrentTime = currentTime;
	mLastDeltaTime = mCurrentTime - mLastTime;
	
	mLastValue = mCurrentValue;
    mCurrentValue = value;
	mDifference = mCurrentValue - mLastValue;
	
	mThresoldTicker +=mLastDeltaTime;

	float lengthDiff  = fabsf(mCurrentValue.angleBetween(mLastValue));
	float timeDiffMs = ((float)mThresoldTicker) / 1000.f;
    
	int flags  = getFlags();
	flags =E_DP_OK;
	
	if (this->getPropertyInfo()->mPredictionType == E_PTYPE_PREDICTED)
	{

		
		if (lengthDiff > getPredictionSettings()->getMinDifference() )
		{
			if (mThresoldTicker2 > getPredictionSettings()->getMinSendTime())
			{
				
				flags =E_DP_NEEDS_SEND;	
				result   = true ;
			}
		}
		
		QuatF serverDiff  = mCurrentValue-mLastServerValue ;
		float serverDiff2   = fabsf(mCurrentValue.angleBetween(mLastServerValue));



		if (  serverDiff2 > getPredictionSettings()->getMinDifference() )
		{
			if (mThresoldTicker2 > (getPredictionSettings()->getMinSendTime() * 0.2f) )
			{
				flags =E_DP_NEEDS_SEND;	
				result   = true ;
			}
		}


		if (mThresoldTicker2 > getPredictionSettings()->getMinSendTime())
		{
			mThresoldTicker2  = 0 ;
			mThresoldTicker  = 0;
		}

	}
	if (this->getPropertyInfo()->mPredictionType == E_PTYPE_RELIABLE)
	{
		flags =E_DP_NEEDS_SEND;	
		result   = true ;
		mLastValue = value;
		mCurrentValue = value;
	}
	setFlags(flags);
	
	return result;
}