Sorry about the delay, I had no time,
Starting to get what you want,
First (from a bit of googling) blender only has 3 types of curves (interpolation)
Constant - Basally no interpolation
Linear – I using it now
Bezier - standard on blender
The editing of curves you’re talking about, I don’t know if it changes special values passed to the Bezier formula that change the shape of the curves or it adds/changes key frames (possibly even hidden ones).
It is probably faster (in fps) if the exporter baked frames as keyframes (no need to bake all of them, and the exporter can find out the type of interpolation your using and the settings on the curve) and the engine used a simpler interpolation on them. It extra file size is minimal (and zips well for the internet). Basic spline interpolation like character Fx (one of the few animators I can use) would still give you good results if the exporter baked frames as keyframes (no need to bake all of them). I look in to what your talking about later when the b3d loader is more complete.
The standard b3d files are not holding any info about the shape/values of the curve, they don’t ever state the type of interpolation to use on them but b3d files are very easily expendable (and backward compatible). The interpolation setting could also be set in the game, maybe so slower computers can use Linear interpolation and faster computers, spline interpolation or Bezier.
Cool I got the changes you made off the SVN,
Some bugs of mine I found:
-B3dChunkHeader’s remaining_length had been deleted (I was not using it)
-When reading unknown chunks,
Won’t work and would crash if used, it is changed to,
“file->seek( (B3dStack[B3dStackSize].startposition + B3dStack[B3dStackSize].length) , false);”
-Added full bright FX (To stop black areas on lightmapped meshes)
-Before only the first node (and its children) would animate, now fixed
(not that well tested)
Some bugs of mine I have not fixed:
-Like I said last post OSReadSwapFloat32 is not a real command, I’m not sure what I should change it to but.
-Also vertex lighting is not working,
Objects will go black if setMaterialFlag(EMF_LIGHTING, false) is not used.