mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 18:19:55 +00:00
Fixed a capitalization error.
Changed Interpolations to unsigned. Also explained what's happening in the comments.
This commit is contained in:
parent
b90e4db871
commit
f9f278f645
2 changed files with 15 additions and 12 deletions
|
@ -428,7 +428,7 @@ struct NiKeyframeData : public Record
|
||||||
for(size_t i=0;i<3;++i)
|
for(size_t i=0;i<3;++i)
|
||||||
{
|
{
|
||||||
//Read concatenates items together.
|
//Read concatenates items together.
|
||||||
mXYZ_keys.read(nif,true);
|
mXYZ_Keys.read(nif,true);
|
||||||
}
|
}
|
||||||
nif->file->warn("XYZ_ROTATION_KEY read, but not used!");
|
nif->file->warn("XYZ_ROTATION_KEY read, but not used!");
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,14 +153,15 @@ template<typename T, T (NIFStream::*getValue)()>
|
||||||
struct KeyListT {
|
struct KeyListT {
|
||||||
typedef std::vector< KeyT<T> > VecType;
|
typedef std::vector< KeyT<T> > VecType;
|
||||||
|
|
||||||
static const int sLinearInterpolation = 1;
|
static const unsigned int sLinearInterpolation = 1;
|
||||||
static const int sQuadraticInterpolation = 2;
|
static const unsigned int sQuadraticInterpolation = 2;
|
||||||
static const int sTBCInterpolation = 3;
|
static const unsigned int sTBCInterpolation = 3;
|
||||||
static const int sXYZInterpolation = 4;
|
static const unsigned int sXYZInterpolation = 4;
|
||||||
|
|
||||||
unsigned int mInterpolationType;
|
unsigned int mInterpolationType;
|
||||||
VecType mKeys;
|
VecType mKeys;
|
||||||
|
|
||||||
|
//Read in a KeyGroup (see http://niftools.sourceforge.net/doc/nif/NiKeyframeData.html)
|
||||||
void read(NIFStream *nif, bool force=false)
|
void read(NIFStream *nif, bool force=false)
|
||||||
{
|
{
|
||||||
assert(nif);
|
assert(nif);
|
||||||
|
@ -193,20 +194,22 @@ struct KeyListT {
|
||||||
readTBC(nifReference, key);
|
readTBC(nifReference, key);
|
||||||
mKeys.push_back(key);
|
mKeys.push_back(key);
|
||||||
}
|
}
|
||||||
|
//XYZ keys aren't actually read here.
|
||||||
|
//data.hpp sees that the last type read was sXYZInterpolation and:
|
||||||
|
// Eats a floating point number, then
|
||||||
|
// Re-runs the read function 3 more times, with force enabled so that the previous values aren't cleared.
|
||||||
|
// When it does that it's reading in a bunch of sLinearInterpolation keys, not sXYZInterpolation.
|
||||||
else if(mInterpolationType == sXYZInterpolation)
|
else if(mInterpolationType == sXYZInterpolation)
|
||||||
{
|
{
|
||||||
//Don't try to read XYZ keys into the wrong part
|
//Don't try to read XYZ keys into the wrong part
|
||||||
if(force)
|
if ( count != 1 )
|
||||||
{
|
|
||||||
readTimeAndValue(nifReference, key);
|
|
||||||
mKeys.push_back(key);
|
|
||||||
}
|
|
||||||
else if ( count != 1 )
|
|
||||||
nif->file->fail("XYZ_ROTATION_KEY count should always be '1' . Retrieved Value: "+Ogre::StringConverter::toString(count));
|
nif->file->fail("XYZ_ROTATION_KEY count should always be '1' . Retrieved Value: "+Ogre::StringConverter::toString(count));
|
||||||
}
|
}
|
||||||
else if ((0 == mInterpolationType))
|
else if (0 == mInterpolationType)
|
||||||
|
{
|
||||||
if (count != 0)
|
if (count != 0)
|
||||||
nif->file->fail("Interpolation type 0 doesn't work with keys");
|
nif->file->fail("Interpolation type 0 doesn't work with keys");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
nif->file->fail("Unhandled interpolation type: "+Ogre::StringConverter::toString(mInterpolationType));
|
nif->file->fail("Unhandled interpolation type: "+Ogre::StringConverter::toString(mInterpolationType));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue