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; }
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; }