Jump to content

writeBits vs writeFloat


Recommended Posts

I have implemented the door resource from Joshua Jewell later modified by Jeff Loveless. It has been working fine but I get occasional crash in bitstream.cpp

void BitStream::writeBits(S32 bitCount, const void *bitPtr) where bitCount has no value therefore -> crash


From the Door.cpp file

bstream->writeBits( 32, &rotation ); not sure how it would fail.


So the question is should I change this over to a writeFloat since rotation is a float value?

In the engine (3.8) there is only one other place writeBits is even used so is that being depricated in favor of a writeFloat ?

Not sure how that mechanism works other than to save net traffic sending only the number of bits needed and ignoring the lower part of the mantissa ... anyone guide me here?

Thanks...

Link to post
Share on other sites

It currently only gets used with ShapeBase's mesh hiding via passing in a BitVector.


Idea being you can have a list of bits(to signify which submeshes are shown or hidden) and quickly network it down as a set(among other possible uses).


In it's current state, it could probably considered a pretty specialized function now. I'd guess that the original resource used it because it was more common at the time.


If it's a F32, then I'd just suggest what LOLJester said. Used write/readFloat and that should take care of it.

Link to post
Share on other sites

Thanks for the input, makes sense.

So write float has a bit count parameter what part is being truncated if less than 32? single precision float = 1 sign, 7 exponent, 24 mantissa yes?

The float in question is a rotation ( I assume normalized 0 - 1 or radian) does the engine lerp the rotation ? Not sure how that mechanism works..

Thanks for any help

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...