コード例 #1
0
float Float_Decode( CBitRead &entityBitBuffer, const CSVCMsg_SendTable::sendprop_t *pSendProp )
{
	float fVal = 0.0f;
	unsigned long dwInterp;

	// Check for special flags..
	if( DecodeSpecialFloat( entityBitBuffer, pSendProp, fVal ) )
	{
		return fVal;
	}

	dwInterp = entityBitBuffer.ReadUBitLong( pSendProp->num_bits() );
	fVal = ( float )dwInterp / ( ( 1 << pSendProp->num_bits() ) - 1 );
	fVal = pSendProp->low_value() + (pSendProp->high_value() - pSendProp->low_value()) * fVal;
	return fVal;
}
コード例 #2
0
static float DecodeFloat(SendProp const *pProp, bf_read *pIn)
{
	float fVal;
	unsigned long dwInterp;

	// Check for special flags..
	if( DecodeSpecialFloat( pProp, pIn, fVal ) )
	{
		return fVal;
	}

	dwInterp = pIn->ReadUBitLong(pProp->m_nBits);
	fVal = (float)dwInterp / ((1 << pProp->m_nBits) - 1);
	fVal = pProp->m_fLowValue + (pProp->m_fHighValue - pProp->m_fLowValue) * fVal;
	return fVal;
}